Python 日志记录:文件处理程序不工作

Python Logging : File Handler doesn't work

这是一个可重现的代码片段:

import logging

logger=logging.getLogger('test')
#create a stream handler for logging out to console.
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.ERROR)

#create a file handler for logging to file
file_handler = logging.FileHandler('logs',mode='a')
file_handler.setLevel(logging.DEBUG)

logger.addHandler(file_handler)
logger.addHandler(stream_handler)

logger.info("this is info")

我希望日志出现在名为 logs 的文件中,但它从不将日志写入该文件。我在这里错过了什么?

当你创建一个记录器时,它的记录级别是NOTSET,因此它从根记录器(即它的父记录器)继承它的级别,默认情况下它的记录级别是WARNING和信息具有较低的级别,因此它不会传递给处理程序。尝试使用

设置记录器级别

logger.setLevel(logging.DEBUG)