您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

即使我将级别设置为INFO,Python日志记录根记录器也不会显示信息

即使我将级别设置为INFO,Python日志记录根记录器也不会显示信息

需要澄清的几件事:

>>> import logging

logging.root.handlers []

好的,但是您发现了问题:将日志记录级别设置DEBUG为时,根记录器无法正常工作。调试消息将被忽略。对于未配置的相同根记录器,警告消息将正常输出。这是为什么?

请记住,我们目前没有任何用于root记录程序的处理程序。但是看一下代码,我们确实看到:

    if (found == 0):
        if lastResort:
            if record.levelno >= lastResort.level:
                lastResort.handle(record)
        elif raiseExceptions and not self.manager.emittedNoHandlerWarning:
            sys.stderr.write("No handlers Could be found for logger"
                             " \"%s\"\n" % self.name)
            self.manager.emittedNoHandlerWarning = True

这意味着,lastResort如果找不到处理程序,我们将提供一个for备份。您可以参考的定义lastResort,它以日志记录级别初始化WARNING。同时,调试消息没有备份,因此在未设置处理程序时将忽略它们。

对于您的问题:

Logger.isEnabledFor(lvl)

指示此记录器是否将处理严重性为lvl的消息。此方法首先检查由logging.disable(lvl)设置的模块级别级别,然后检查由getEffectiveLevel()确定的记录器的有效级别。

您应该做的是,使用logging.basicConfig()它为根记录程序设置认处理程序,并根据记录程序级别和消息级别输出消息。

python 2022/1/1 18:41:20 有548人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶