我有一个使用Click和click-log的Python cli项目。我的项目有两个模块cli.py
和doit.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
?
我找到了以下解决方案:
我像这样在主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可以想到的最好方法。在我看来这不是非常]