有这部分代码:
import logging
logFormatter = logging.Formatter(u'#%(levelname)-8s [%(asctime)s] [LINE:%(lineno)d] %(filename)-8s %(message)s',)
logger = logging.getLogger()
logger.setLevel(logging.INFO)
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
logger.addHandler(consoleHandler)
如何处理 logging.error 调用,例如保存登录数据库或执行其他操作
答案 0 :(得分:1)
可能最简单的答案是使用多个处理程序,使用不同的日志记录级别进行设置。从logging
docs开始,这是您要实现的目标的完美示例:
import logging
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler('spam.log')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)
# add the handlers to logger
logger.addHandler(ch)
logger.addHandler(fh)
# 'application' code
logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')
该示例为这些日志级别类型提供了DEBUG
和ERROR
级别处理程序格式。
也许另一种解决方案是切换到使用dictConfig
来处理python logging
模块配置。这将以dictionary
类型的方式处理结构,您可以为level
属性提供多个值。