Python-如何禁用从父目录导入的模块的日志记录?

时间:2020-07-17 18:04:52

标签: python logging import module python-import

我有一个像这样的文件结构:

util/
└── utilA.py
src/
└── sublevel
    └── moduleB.py

moduleB中,我使用from util.utilA import *从util中导入函数。

moduleB内,我想禁用util中的logging.info(),但是以下两行不起作用,如果我运行moduleB,我仍然看到生成的日志记录来自utilA中的功能:

logging.getLogger('util.utilA').propagate = False
logging.getLogger('util.utilA').setLevel(logging.ERROR)

我也尝试了logging.getLogger('util')logging.getLogger('utilA'),但这些都不起作用。

让我困惑的一件事是,我对另一个模块pdfminer使用了相同的两行(logging.getLogger('pdfminer')...),并且成功禁用了该模块的日志记录。不适用于我的本地utilA

有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:1)

日志记录基于获取记录器时使用的名称,而不是执行记录的模块的名称。特别是logging.info()使用root记录器。如果要调整给定模块的日志记录,请确保它未使用root记录器,并使用其getLogger("somename")记录器名称。