【发布时间】:2020-11-07 14:06:00
【问题描述】:
我有这样的文件结构:
util/
└── utilA.py
src/
└── sublevel
└── moduleB.py
在moduleB 中,我使用from util.utilA import * 从 util 中导入函数。
在moduleB 内部,我想禁用util 中的logging.info(),但以下两行不起作用,如果我运行moduleB,我仍然会看到@987654328 中的函数生成的日志记录@:
logging.getLogger('util.utilA').propagate = False
logging.getLogger('util.utilA').setLevel(logging.ERROR)
我也尝试了logging.getLogger('util') 和logging.getLogger('utilA'),但这些都不起作用。
还有一点让我感到困惑的是,我对另一个模块 pdfminer 使用了相同的两行 (logging.getLogger('pdfminer')...),并且它成功地禁用了该模块的日志记录。它对我本地的utilA 不起作用。
有人可以帮忙吗?谢谢!
【问题讨论】:
-
utilA 使用什么记录器? (应该是
logging.getLogger("something"))。日志记录不基于模块名称。这是一个常见的约定,但是一个模块可以创建一个它想要的任何名称的记录器。 -
@tdelaney
utilA正在使用logging.info('Something happened')。将其更改为logger = logging.getLogger(__name__)和logger.info('Something happened')后,问题就解决了。非常感谢!
标签: python logging import module python-import