为了账号安全,请及时绑定邮箱和手机立即绑定

记录器对象不继承根级别

记录器对象不继承根级别

噜噜哒 2023-12-12 10:03:25
在尝试 python 的日志记录模块时,我遇到了一些意想不到的行为。我的猜测是,这是由于我的误解,而不是错误,但我无法弄清楚出了什么问题(并且我在测试之前一直小心地重新启动python内核,以确保根记录器仅配置一次。import logginglogging.basicConfig(level=logging.CRITICAL)logger1 = logging.getLogger(__name__)logger1.debug("logger1 debug test")正如预期的那样,没有输出日志消息。如果我按如下方式更改记录器的级别:logger1.setLevel('DEBUG')logger1.debug("logger1 debug test")我得到预期的输出:DEBUG:__main__:logger1 debug test但是,当我现在创建一个新的记录器对象时,它似乎继承了 logger1 的属性,而不是 root 的属性:logger2 = logging.getLogger(__name__)logger2.debug("logger2 debug test")其产生:DEBUG:__main__:logger2 debug test奇怪的是,logger2 仍然将根显示为父级,但显示级别为 10:print(logger2.__dict__){'filters': [], 'name': '__main__', 'level': 10, 'parent': <RootLogger root (CRITICAL)>, 'propagate': True, 'handlers': [], 'disabled': False, '_cache': {10: True}, 'manager': <logging.Manager object at 0x00000265147F2B48>}谁能解释一下为什么 logger2 不默认为 0 (NOTSET) 级别?
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

问题是,通过尝试创建与 logger1 同名的 logger2,我实际上并没有创建新的记录器对象。



查看完整回答
反对 回复 2023-12-12

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号