我如何使用click_log来控制具有多个模块的python项目中的日志记录级别?

问题描述 投票:0回答:1

我有一个使用Clickclick-log的Python cli项目。我的项目有两个模块cli.pydoit.py

在主模块cli.py中使用

log = logging.getLogger(__name__)
click_log.basic_config(log)

如click_log文档中的建议,该模块中的日志可通过命令行上的--verbosity选项完全控制。

在另一个模块doit.py中,按照最佳实践实例化记录器

log = logging.getLogger(__name__)

但是,这将导致日志级别doit模块中始终独立于命令行选项而设置为WARNING

我如何也将click_log应用于辅助模块doit.py

python logging command-line-interface
1个回答
0
投票

我找到了以下解决方案:

我像这样在主doit中分配cli.py的记录器变量:

# --- Excerpt from cli.py ---
.
.
.
import doit

log = logging.getLogger(__name__)
doit.log = log
click_log.basic_config(log)
.
.
.

我对这种解决方案不太满意。 -在cli.py中将记录器变量设置为同一对象看起来很费劲,但这是我使用click_log可以想到的最好方法。在我看来这不是非常]

© www.soinside.com 2019 - 2024. All rights reserved.