X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=sima%2Flib%2Flogger.py;h=b27d4f07f15ca15e689c944a8a80fb83dfcc5468;hb=f036019a4f5ce8b43d0c1b704ae1a67e36b6b6ac;hp=3b287e26390859d47c2b11b7af7dedfecca88f81;hpb=78a694ddcd2a6ecc8b2b1fd3c74ee2d938707305;p=mpd-sima.git diff --git a/sima/lib/logger.py b/sima/lib/logger.py index 3b287e2..b27d4f0 100644 --- a/sima/lib/logger.py +++ b/sima/lib/logger.py @@ -28,8 +28,8 @@ import sys LOG_FORMATS = { - logging.DEBUG: '{asctime} {filename: >11}:{lineno: <3} {levelname: <7}: {message}', - logging.INFO: '{asctime} {levelname: <7}: {message}', + logging.DEBUG: '[{process}]{filename: >11}:{lineno: <3} {levelname: <7}: {message}', + logging.INFO: '{levelname: <7}: {message}', #logging.DEBUG: '{asctime} {filename}:{lineno}({funcName}) ' #'{levelname}: {message}', } @@ -50,13 +50,14 @@ class LevelFilter(logging.Filter):# Logging facility return record.levelno <= self.level -def set_logger(level='info', logfile=None, name='sima'): +def set_logger(level='info', logfile=None): """ logger: level: in debug, info, warning,… - file: provides to log to file + logfile: file to log to """ + name = 'sima' user_log_level = getattr(logging, level.upper()) if user_log_level > logging.DEBUG: log_format = LOG_FORMATS.get(logging.INFO) @@ -65,22 +66,37 @@ def set_logger(level='info', logfile=None, name='sima'): logg = logging.getLogger(name) formatter = logging.Formatter(log_format, DATE_FMT, '{') logg.setLevel(user_log_level) + filehdl = False + if logg.handlers: + for hdl in logg.handlers: + hdl.setFormatter(formatter) + if isinstance(hdl, logging.FileHandler): + filehdl = True + else: + logg.removeHandler(hdl) + if logfile: + if filehdl: + logg.handlers = [] + # Add timestamp for file handler + log_format = '{0} {1}'.format('{asctime}', log_format) + formatter = logging.Formatter(log_format, DATE_FMT, '{') # create file handler fileh = logging.FileHandler(logfile) #fileh.setLevel(user_log_level) fileh.setFormatter(formatter) - if not logg.hasHandlers(): - logg.addHandler(fileh) + logg.addHandler(fileh) else: - if not logg.hasHandlers(): - # create console handler with a specified log level (STDOUT) - couth = logging.StreamHandler(sys.stdout) - #couth.setLevel(user_log_level) - couth.addFilter(LevelFilter(logging.WARNING)) - - # create console handler with warning log level (STDERR) - cerrh = logging.StreamHandler(sys.stderr) + if filehdl: + logg.info('Not changing logging handlers, only updating formatter') + return + # create console handler with a specified log level (STDOUT) + couth = logging.StreamHandler(sys.stdout) + #couth.setLevel(user_log_level) + couth.addFilter(LevelFilter(logging.WARNING)) + + # create console handler with warning log level (STDERR) + cerrh = logging.StreamHandler(sys.stderr) #cerrh.setLevel(logging.WARNING) cerrh.setLevel(logging.ERROR)