X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Flogger.py;h=61d2d2504ddb668cf4f1475b004b15ed917861fa;hb=e18be49d2739809a619626f8ddb51ce3f1838a19;hp=f1569334abddb4d04934ef5dd5a0c6b8fa79ed15;hpb=65385738f889849be01cb70815e8899e319c9532;p=mpd-sima.git diff --git a/sima/lib/logger.py b/sima/lib/logger.py index f156933..61d2d25 100644 --- a/sima/lib/logger.py +++ b/sima/lib/logger.py @@ -26,6 +26,8 @@ Logging facility for sima. import logging import sys +from os import environ + DEBUG = logging.DEBUG INFO = logging.INFO ERROR = logging.ERROR @@ -37,14 +39,14 @@ LOG_FORMATS = { } DATE_FMT = "%Y-%m-%d %H:%M:%S" +TRACE_LEVEL_NUM = 5 +logging.addLevelName(TRACE_LEVEL_NUM, 'TRACE') +def trace(self, message, *args, **kwargs): + # Yes, logger takes its '*args' as 'args'. + if self.isEnabledFor(TRACE_LEVEL_NUM): + self._log(TRACE_LEVEL_NUM, message, args, **kwargs) -class LevelFilter(logging.Filter): - """ - Enable logging between two log level by filtering everything < level. - """ - def filter(self, record): - """Defines loglevel""" - return record.levelno <= ERROR +logging.Logger.trace = trace def set_logger(level='info', logfile=None): @@ -52,10 +54,12 @@ def set_logger(level='info', logfile=None): logger: level: in debug, info, warning,… logfile: file to log to - """ name = 'sima' - user_log_level = getattr(logging, level.upper()) + if environ.get('TRACE', False): + user_log_level = TRACE_LEVEL_NUM + else: + user_log_level = getattr(logging, level.upper()) if user_log_level > DEBUG: log_format = LOG_FORMATS.get(INFO) else: @@ -88,10 +92,10 @@ def set_logger(level='info', logfile=None): return # create console handler with a specified log level (STDOUT) couth = logging.StreamHandler(sys.stdout) - couth.addFilter(LevelFilter()) + couth.addFilter(lambda record: record.levelno < ERROR) # create console handler with warning log level (STDERR) - cerrh = logging.StreamHandler() + cerrh = logging.StreamHandler(sys.stderr) cerrh.setLevel(ERROR) # add formatter to the handlers @@ -100,7 +104,7 @@ def set_logger(level='info', logfile=None): # add the handlers to SIMA_LOGGER logger.addHandler(couth) - #logger.addHandler(cerrh) # Already added creating the handler‽ Still have to figure it out. + logger.addHandler(cerrh) # Already added creating the handler‽ Still have to figure it out. # VIM MODLINE # vim: ai ts=4 sw=4 sts=4 expandtab