【问题标题】:How to disable imported module logging at root level如何在根级别禁用导入的模块日志记录
【发布时间】:2017-12-15 23:49:02
【问题描述】:

我正在导入一个以警告级别记录信息的模块。我认为编写此代码的人是在根级别登录,即在代码中只是:

import logging
logging.warn("foo")

我试过下面的代码,但它不起作用,可能是因为日志被发送到 root 或其他东西。

logging.getLogger(module).setLevel(logging.ERROR)

有没有办法可以禁用此模块的特定日志记录?

【问题讨论】:

    标签: python logging module


    【解决方案1】:

    这里有几件事令人困惑:

    logging.getLogger(module).setLevel(logging.ERROR)
    

    这里的“模块”应该是一个字符串,通常是模块的全称。即:package.module.

    根据格式的不同,Logger 的名称通常会打印在日志中。这样您就可以轻松禁用它。

    例如,如果你有类似的东西:

    WARNING [foo.bar.baz] the message
    

    记录器名称应为foo.bar.baz

    但是,如果你认为它是 root logger,那么你可以试试:

    logger = logging.getLogger()
    logger .setLevel(logging.ERROR)
    

    另一件令人困惑的事情是 Python 警告。看看这个答案来禁用它们:https://stackoverflow.com/a/14463362

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 1970-01-01
      • 2020-11-07
      • 2015-02-25
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      相关资源
      最近更新 更多