【发布时间】:2017-12-15 23:49:02
【问题描述】:
我正在导入一个以警告级别记录信息的模块。我认为编写此代码的人是在根级别登录,即在代码中只是:
import logging
logging.warn("foo")
我试过下面的代码,但它不起作用,可能是因为日志被发送到 root 或其他东西。
logging.getLogger(module).setLevel(logging.ERROR)
有没有办法可以禁用此模块的特定日志记录?
【问题讨论】:
我正在导入一个以警告级别记录信息的模块。我认为编写此代码的人是在根级别登录,即在代码中只是:
import logging
logging.warn("foo")
我试过下面的代码,但它不起作用,可能是因为日志被发送到 root 或其他东西。
logging.getLogger(module).setLevel(logging.ERROR)
有没有办法可以禁用此模块的特定日志记录?
【问题讨论】:
这里有几件事令人困惑:
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
【讨论】: