gpt4 book ai didi

python - logging.StreamHandler.setLevel(logging.DEBUG) <--- 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:28 24 4
gpt4 key购买 nike

我不知道为什么它无法记录该消息,我认为一切都已正确设置。

logging.DEBUG 定义在 logging 模块下

import logging
import sys

logger = logging.getLogger('collega_GUI')
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s %(levelname)s --file: %(module)s --riga: %(lineno)d, %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

logger.debug('def __init__')

但如果我尝试运行这个,它会起作用:

logger.warning('def __init__')

这个level变量的问题在哪里?

最佳答案

问题是调试级别的消息在到达处理程序之前就被记录器过滤掉了。通过将 handler.setLevel(logging.DEBUG) 更改为 logger.setLevel(logging.DEBUG) 可以解决此问题。

当日志消息沿着链向下传递时,您可以在几个不同的地方按日志级别进行过滤。默认情况下,记录器只传递 INFO 及以上信息,处理程序接受所有信息。如果您希望将不同级别的日志记录发送到不同的地方,则允许处理程序使用不同的日志级别非常有用。例如,您可以将记录器设置为 DEBUG,然后创建一个在 WARN 及以上记录到屏幕的处理程序,以及另一个在 DEBUG 及以上记录到文件的处理程序。用户获得了一些信息,日志文件很冗长。

关于python - logging.StreamHandler.setLevel(logging.DEBUG) <--- 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23088360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com