]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/logger.py
Removed timestamp for console logging
[mpd-sima.git] / sima / lib / logger.py
index a4ed23de4f2b9c5c985edb8ff03d6383577837d0..b27d4f07f15ca15e689c944a8a80fb83dfcc5468 100644 (file)
@@ -1,5 +1,4 @@
 # -*- coding: utf-8 -*-
-
 # Copyright (c) 2009, 2010, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
 #
 #  This file is part of sima
@@ -29,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}',
         }
@@ -51,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)
@@ -66,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)