【发布时间】:2019-12-26 00:54:26
【问题描述】:
使用logging.config.dictConfig() 似乎可以删除或禁用不在配置中的记录器。这让我很困惑。
下面是一个关于最小示例的问题:
为什么配置后 logger1 的输出没有显示? 它不应该像 logger2 那样传播到根记录器吗?
示例:
import logging
import logging.config
import yaml
logger1 = logging.getLogger('logger1')
logger2 = logging.getLogger('logger2')
logger1.error('logger1: this is shown 1')
logger2.error('logger2: this is shown 2')
config_string = """
version: 1
loggers:
logger2:
level: ERROR
"""
config_dict = yaml.safe_load(config_string)
logging.config.dictConfig(config_dict)
logger1.error('logger1: why is this not shown 3')
logger2.error('logger2: this is shown 4')
实际输出:
logger1: this is shown 1
logger2: this is shown 2
logger2: this is shown 4
我期望的输出:
logger1: this is shown 1
logger2: this is shown 2
logger1: why is this not shown 3
logger2: this is shown 4
【问题讨论】:
标签: python logging python-logging