Initialize logging by hand, nicer output

This commit is contained in:
Florian Bruhin 2014-05-23 18:22:22 +02:00
parent 6825c669b5
commit 353a447dd6

View File

@ -42,14 +42,26 @@ def init_log(args):
"""Init loggers based on the argparse namespace passed.""" """Init loggers based on the argparse namespace passed."""
logfilter = LogFilter(None if args.logfilter is None logfilter = LogFilter(None if args.logfilter is None
else args.logfilter.split(',')) else args.logfilter.split(','))
level = 'DEBUG' if args.debug else args.loglevel.upper()
try:
numeric_level = logging._nameToLevel[level]
except KeyError:
raise ValueError("Invalid log level: {}".format(args.loglevel))
if numeric_level <= logging.DEBUG:
fmt = ('{asctime} [{levelname}] [{name}|{module}:{funcName}:{lineno}] '
'{message}')
datefmt = '%Y-%m-%d %H:%M:%S'
else:
fmt = '{levelname}: {message}'
datefmt = None
formatter = logging.Formatter(fmt, datefmt, '{')
console_handler = logging.StreamHandler() console_handler = logging.StreamHandler()
console_handler.addFilter(logfilter) console_handler.addFilter(logfilter)
logging.basicConfig( console_handler.setLevel(level)
level='DEBUG' if args.debug else args.loglevel.upper(), console_handler.setFormatter(formatter)
format='%(asctime)s [%(levelname)s] [%(name)s|' root = getLogger()
'%(module)s:%(funcName)s:%(lineno)s] %(message)s', root.addHandler(console_handler)
datefmt='%Y-%m-%d %H:%M:%S', root.setLevel(logging.NOTSET)
handlers=[console_handler])
class LogFilter(logging.Filter): class LogFilter(logging.Filter):