【发布时间】:2020-09-19 20:38:33
【问题描述】:
我原以为下面的代码会输出两个日志行
import logging
log = logging.getLogger('hello')
log.setLevel(logging.DEBUG)
print(log.getEffectiveLevel())
log.debug('debug log')
log.critical('critical log')
输出是
10
critical log
级别正确设置为10(其中corresponds to DEBUG),尽管log.debug('debug log') 没有输出任何内容 - 为什么?
【问题讨论】:
-
您的意思是将日志打印到
stdout或stderr? -
@MiguelTrejo:为什么会有不同?调试消息会打印在关键消息之外的其他地方吗?而这在其他地方不会受到
.setLevel()的影响? -
您只设置记录器本身的级别,而不是用于将日志消息打印到标准错误的初始处理程序。处理程序和记录器具有不同的级别,因此(例如)单个记录器可以将调试消息写入控制台,但只能将严重错误写入 SMTP 处理程序以通知某人需要解决的问题。
标签: python python-3.x logging