]> kaliko git repositories - mpd-sima.git/blobdiff - sima/lib/logger.py
Removed timestamp for console logging
[mpd-sima.git] / sima / lib / logger.py
index ebe6c27142946932dfa23fd4826634eb61e37c8b..b27d4f07f15ca15e689c944a8a80fb83dfcc5468 100644 (file)
@@ -1,6 +1,5 @@
 # -*- coding: utf-8 -*-
-
-# Copyright (c) 2009, 2010, 2013 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2009, 2010, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
 #
 #  This file is part of sima
 #
@@ -29,10 +28,10 @@ import sys
 
 
 LOG_FORMATS = {
+        logging.DEBUG: '[{process}]{filename: >11}:{lineno: <3} {levelname: <7}: {message}',
+        logging.INFO:  '{levelname: <7}: {message}',
         #logging.DEBUG: '{asctime} {filename}:{lineno}({funcName}) '
                                  #'{levelname}: {message}',
-        logging.DEBUG:  '{asctime} {filename}:{lineno}  {levelname}: {message}',
-        logging.INFO:  '{asctime} {levelname}: {message}',
         }
 DATE_FMT = "%Y-%m-%d %H:%M:%S"
 
@@ -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,13 +66,30 @@ 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)
         logg.addHandler(fileh)
     else:
+        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)