如何在根级别禁用导入的模块日志记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在根级别禁用导入的模块日志记录相关的知识,希望对你有一定的参考价值。

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

import logging
logging.warn("foo")

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

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

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

答案

这里有几件令人困惑的事情:

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

这里的'module'应该是一个字符串,通常是模块的完全限定名称。是:qazxsw poi。

根据格式,Logger的名称通常打印在日志中。这样你可以轻松地禁用它。

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

package.module

记录器名称应为WARNING [foo.bar.baz] the message

但是,如果您认为它是根记录器,那么您可以尝试:

foo.bar.baz

另一件令人困惑的事情是Python警告。看看这个答案来禁用它们:logger = logging.getLogger() logger .setLevel(logging.ERROR)

以上是关于如何在根级别禁用导入的模块日志记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中启用/禁用日志级别?

如何在代码中启用/禁用 spdlog 日志记录?

排毒测试 - 如何禁用排毒信息记录到标准输出

从 Maven 禁用休眠日志记录

logging模块

日志记录(logging模块的简单运用)