根记录器忽略记录器级别

时间:2015-04-24 16:42:45

标签: python logging

根记录器在(我认为)应该记录时不记录:

import logging

# NOTE: I make sure to set the root logger level to logging.DEBUG
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)

logging.debug('This is a debugging test.')

根据我的理解,这应该记录一些东西,但它什么都不做。 快速谷歌搜索并没有帮助我解决这个问题,official documentation也没有。

另一方面,如果我使用logging.warning代替logging.debug,它确实有效。

我做错了什么?

编辑:

使用logging.getLogger().getEffectiveLevel()检查当前级别表示该级别仍为30,就像调用logging.basicConfig之前一样。

有效地检查logging.getLogger().isEnabledFor(logging.DEBUG)告诉我,logging.DEBUG未启用根记录器级别。

1 个答案:

答案 0 :(得分:3)

编辑:关闭OP(我)的麻烦是由于在logging.debug之前已经调用logging.basicConfig,因此将配置设置为默认值并调用{@ 1}}被@SmCaterpillar指出忽略了。

虽然,但这种替代解决方案可让您“强迫”#34; <{1}}已设置后的根记录器级别仍然有用!

找到一个&#34;解决方案&#34;:

logging.basicConfig

但它并没有执行我在basicConfig中提供的格式。

那说我已经满意了:已经有了一些进展。即使不完全符合我预期的格式,记录总是比没有记录更好。