python日志:logger setLevel()未强制执行?

2024-09-30 05:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

fmtter = logging.Formatter('%(asctime)s,%(msecs)05.1f (%(funcName)s) %(message)s', '%H:%M:%S')

rock_log = '%s/rock.log' % Build.path
hdlr = logging.FileHandler(rock_log, mode='w')
hdlr.setFormatter(fmtter)
hdlr.setLevel(logging.DEBUG)

rock_logger = logging.getLogger('rock')
rock_logger.addHandler(hdlr)

我有上面的记录

rock_logger.info("hi")不在日志中打印任何内容,但
rock_logger.error("hi")不会打印到日志

我认为它与level有关,但我特别将它设置为logging.DEBUG

有人知道我做错了什么吗?你知道吗


Tags: pathdebugbuildlogmessageformatterlogginghi
1条回答
网友
1楼 · 发布于 2024-09-30 05:27:28

在您的例子中,rock_logger是记录器,hdlr是处理程序。当您尝试记录某些内容时,记录器首先检查是否应该处理该消息(取决于它自己的日志级别)。然后它将消息传递给处理程序。然后处理程序根据自己的日志级别检查该级别,并决定是否将其写入文件。你知道吗

您的rock_logger可能将日志级别设置为errors。因此,当您尝试info()debug()时,它不会将消息传递给处理程序。你知道吗

rock_logger.setLevel(logging.DEBUG)

这应该能解决问题。你知道吗

相关问题 更多 >

    热门问题