1
0
mirror of https://github.com/r4sas/py-i2phosts synced 2025-01-10 06:47:58 +00:00
py-i2phosts/web/lib/utils.py
Hidden Z 891472cfac web/lib/utils.py: add check_logger_options()
We need to check config options for logger in various scripts, and this
check is almost same, so move it to separate function.
2010-10-31 19:48:33 +00:00

43 lines
1.1 KiB
Python

import sys
import logging
from logging import handlers
def get_logger(filename=None, log_level='debug'):
""" Prepare logger instance for our scripts """
LEVELS = {
'debug': logging.DEBUG,
'info': logging.INFO,
'warning': logging.WARNING,
'error': logging.ERROR,
'critical': logging.CRITICAL
}
level = LEVELS.get(log_level, logging.NOTSET)
format = '%(asctime)s %(module)s:%(lineno)d[%(process)d] %(levelname)s: %(message)s'
formatter = logging.Formatter(format)
logger = logging.getLogger(__name__)
logger.setLevel(level)
if filename:
handler = logging.handlers.WatchedFileHandler(filename)
else:
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger
def check_logger_options(config):
""" Check passed config for logger options """
if 'log_level' in config:
log_level = config['log_level']
else:
sys.stderr.write('"log_level" is missing in config\n')
sys.exit(1)
if 'log_file' in config:
log_file = config['log_file']
else:
sys.stderr.write('"log_file is missing in config\n')
sys.exit(1)
return (log_file, log_level)