# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009, 2010, 2013 Jack Kaliko <efrim@azylum.org>
+# Copyright (c) 2009, 2010, 2013, 2014 Jack Kaliko <kaliko@azylum.org>
#
# This file is part of sima
#
LOG_FORMATS = {
- logging.DEBUG: '{asctime} {filename}:{lineno}({funcName}) '
- '{levelname}: {message}',
- logging.INFO: '{asctime} {levelname}: {message}'
+ logging.DEBUG: '[{process}]{filename: >11}:{lineno: <3} {levelname: <7}: {message}',
+ logging.INFO: '{levelname: <7}: {message}',
+ #logging.DEBUG: '{asctime} {filename}:{lineno}({funcName}) '
+ #'{levelname}: {message}',
}
DATE_FMT = "%Y-%m-%d %H:%M:%S"
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)
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)