在每个脚本的基础上在 Python 中配置日志记录的最佳方法是什么?

问题描述

我有一个由各种脚本组成的代码库,每个脚本使用一个或多个库模块中的一个。不同的脚本需要以不同的详细级别向控制台提供状态更新,并且具有其他独特的日志记录要求。每个库模块使用自己的记录器,使用标准做法:

some_module.py

import logging
logger = logging.getLogger(__name__)

对 logger.debug()、logger.info() 等进行调用,但没有在模块级别进行记录器配置。重要的是,各种库模块使用第三方库,例如请求,它们处理登录的方式基本相同。在给定的脚本中,我希望能够指定日志记录配置并将其传播到我的库模块,而不是第三方库。我可以执行以下操作:

some_script.py

import logging
logger = logging.getLogger(__name__)
..configure logger...
import module_a
...
import module_z
module_a.logger.parent = logger
...
module_z.logger.parent = logger

通过这种方式,我可以控制脚本及其直接导入的日志记录配置,而不必担心,例如,使用来自第三方库的调试消息向日志发送垃圾邮件。然而,这看起来像很多样板,它不处理不是由顶级脚本直接导入的库模块。感觉好像我想多了,我的用例被我忽略的日志模块的一些内置功能所覆盖。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)