DEBUG日志未使用与不同输出关联的不同级别编写



我使用logging来管理Python代码的日志。我将配置两个不同的输出(流和文件(,每个输出都有特定级别的日志。问题是,当我声明使用正确的级别时,DEBUG级别没有写在我的文件中。。。

MWE

import logging
logging.basicConfig(level=logging.INFO)
f = logging.FileHandler('log.log')
f.setLevel(logging.DEBUG)
logging.getLogger().addHandler(f)
logging.info('test')
logging.debug('test debug')

print(logging.getLogger().handlers)返回[<StreamHandler <stderr> (NOTSET)>, <FileHandler zz/xxx/log.log (DEBUG)>]

您使用basicConfig将根记录器的级别设置为INFO。这意味着只接受级别为INFO及以上的日志。

您的处理程序的级别为DEBUG,并连接到级别为INFO的根记录器。因此,只会处理级别为INFO及以上的日志。

不要使用basicConfig!您应该显式地将记录器配置为DEBUG级别,并添加2个处理程序,一个到INFO级别的stdout,一个添加到DEBUG级别的文件

最新更新