如何为导入模块的记录器关闭(或设置级别)?

时间:2015-01-30 03:34:02

标签: python logging

我有一个看起来像这样的代码

from others_module import aaa
logger = logging.getLogger(__name__)
logger.setLevel(logging.ERROR)
a = aaa()

这是others_module.py

的代码
class aaa():
    def __init__(self):
        logging.warning("some warming")

我似乎无法关闭others_module的警告。 从我的代码中转出警告的方法是什么? 添加others_module的代码不是一种选择。

提前致谢。

1 个答案:

答案 0 :(得分:0)

others_module正在使用logging.warning函数,该函数将调用委托给根记录器。你需要做

logging.getLogger().setLevel(logging.ERROR) # or CRITICAL

防止根记录器处理WARNING个事件。

要导入并用作库的代码不应使用根记录器 - 它应使用包名为logger的记录器,如第一个代码段所示。