我使用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
级别的文件