gpt4 book ai didi

python - 对 Python 实现无根记录器策略

转载 作者:行者123 更新时间:2023-12-01 06:54:44 25 4
gpt4 key购买 nike

我从事一个开源项目,在项目中我们曾经允许所有模块登录根记录器:

import logging


def my_function():
logging.info('Logging something on the root- logger')

我们正在转向使用每模块记录器,如下所示:

import logging

_LOGGER = logging.getLogger(__name__)


def my_function():
_LOGGER.info('Logging something on the root- logger')

有没有办法通过 Linter/静态检查来强制执行此策略,以便其他人不会登录根记录器?

最佳答案

如果你想找到发生这种情况的所有情况,静态检查绝对是不可能的。您能实现的最好效果基本上就是在源代码中查找字符串 logging.[info|debug|...] 。静态检查器很容易被这样的东西愚弄:

logger_name = 'root' # might even read this from a config file
_LOGGER = logging.getLogger(logger_name) # static check has no way to know here that we get the root logger
_LOGGER.info('logging this to root')

除此之外,如果您没有在模块级记录器上将 propagate 设置为 false,它们仍然会将其日志传播到根记录器。

关于python - 对 Python 实现无根记录器策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58866438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com