使用Python的logging
模块,我想配置两个独立的记录器。一个用于开发,一个用于操作。
我可以使用addHandler
之类的配置方法来实现这一点(请参阅问题底部的代码),但我没有看到使用配置字典的方法。相反,dictConfig似乎保留给整个日志记录模块。如何使用字典配置命名的logger
?
这是我用来配置两个记录器的代码,ops
和dev
使用方法调用,没什么特别的,只是为了让我们了解一下我想要的功能:
import logging
# create logger
ops_logger = logging.getLogger('ops')
dev_logger = logging.getLogger('dev')
ops_logger.setLevel(logging.DEBUG)
dev_logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ops_file = logging.FileHandler("ops")
dev_file = logging.FileHandler("dev")
ops_file.setLevel(logging.DEBUG)
dev_file.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ops_file.setFormatter(formatter)
dev_file.setFormatter(formatter)
# add ch to logger
ops_logger.addHandler(ops_file)
dev_logger.addHandler(dev_file)
# 'application' code
ops_logger.error('ops error message')
dev_logger.error('dev error message')
我使用2.7,但接受3.x解决方案