繁体   English   中英

仅在从 python 中的根记录器记录后才启用子记录器的控制台记录

[英]Logging to console for child loggers is enabled only after logging from root logger in python

看看这段代码:

import logging

logging.getLogger().setLevel(logging.DEBUG)
logging.getLogger('TEST').setLevel(logging.DEBUG)

#logging.debug('message')

logging.getLogger().debug('message')
logging.getLogger('TEST').debug('message')

使用注释行logging.debug('message')当我运行脚本时,我没有在控制台中看到任何日志消息,如我所料。 我希望看到来自 root 和 TEST 记录器的两条日志消息,但我什么也没看到。

但是当我取消注释该行时,我按预期看到了三个日志消息。

问题是什么?

PS:我的python版本:3.10.5

您没有配置任何处理程序,处理程序是 output 记录消息的东西。 线

logging.debug('message')

执行处理程序的隐式配置(如此所述,在最后一段中),因此您收到消息 output。 最后一段说:

如果根记录器没有附加任何处理程序,则此 function [意思是logging.debug() ](以及info()warning()error()critical() )将调用 basicConfig() 。

另请参阅高级教程,其中讨论了记录器、处理程序、过滤器和格式化程序所扮演的角色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM