根记录器在(我认为)应该记录时不会记录:
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.')
根据我的理解,这应该记录一些东西,但它什么也没做。
快速的谷歌搜索并没有帮助我解决这个问题,也没有帮助我解决这个问题。官方文档 https://docs.python.org/3/library/logging.html.
另一方面,如果我使用logging.warning
代替logging.debug
,它确实有效。
我究竟做错了什么?
EDIT:
检查当前级别logging.getLogger().getEffectiveLevel()
表明我的水平仍然是30
,就像在调用之前一样logging.basicConfig
.
检查logging.getLogger().isEnabledFor(logging.DEBUG)
有效地告诉我根记录器级别未启用logging.DEBUG
.
EDIT:原来OP(我)的麻烦是因为已经打电话了logging.debug
before logging.basicConfig
,从而将配置设置为默认值并调用logging.basicConfig
正如@SmCaterpillar 所指出的,被忽略了。
Although,此替代解决方案允许您在执行后“强制”根记录器级别basicConfig
已经设置了,还是有用的!
找到了一个“解决方案”:
# […] Previous code
# Sets the root logger level
logging.getLogger().setLevel(logging.DEBUG)
logging.debug('Test') # Displays 'DEBUG:root:Test'
但它不执行我给出的格式logging.basicConfig
.
这就是说我已经很满意了:这已经是某种进步了。即使不完全符合我期望的格式,记录也总是比不记录要好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)