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)
这是一个可重现的代码片段:
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)