Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对Python强制执行无根记录器策略_Python_Logging - Fatal编程技术网

对Python强制执行无根记录器策略

对Python强制执行无根记录器策略,python,logging,Python,Logging,我从事一个开源项目,在该项目中,我们允许所有模块登录根日志记录器: 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 somet

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

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/静态检查来强制执行此策略,以便其他人不会登录根日志记录器?

如果要查找发生这种情况的所有情况,静态检查肯定不可能做到这一点。您所能达到的最佳效果基本上是在源代码中查找字符串
日志记录。[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,那么它们仍然会将其日志传播到根记录器。

很公平。我觉得这不太可能,但值得一试。谢谢