Python使用带有多个处理程序的记录器

时间:2016-07-14 20:53:43

标签: python-2.7 logging

如果我在模块A中定义一个带有2个处理程序的记录器

# module A
import logging

logger = logging.getLogger('PARSER')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler('glm_parser.log')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)

然后将模块A多次导入其他模块。 但是,每次导入A时,代码都会被执行,所以最后我有2 * x个处理程序,其中x是导入A的次数。

你如何避免这个问题?

0 个答案:

没有答案