Python 记录器在没有 configure_logging() 的情况下打印两次行
Python logger prints line twice without configure_logging()
当使用 python 记录器时,我的程序开始时可以正常记录,但在某些时候日志输出开始输出两次行,如下所示:
DEBUG:pluginbrowser:Scanning plugs
DEBUG:pluginbrowser:Doing good stuff
....
INFO:pluginbrowser:=== doing something ===
=== doing something ===
目前我所有的 python 文件都包含行
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
因此,加倍的消息来自pluginbrowser.py 文件。检查这个,我发现在我的程序开始时,相同的文件输出一些日志而没有加倍行。我试图找出它到底发生在哪一点,但我不知何故被困在这里。
我也读过 log messages appearing twice with Python Logging 但我根本没有使用 configure_logging
。
看起来你在某个地方添加了一个额外的处理程序。
我会在代码中搜索 addHandler。您还可以调试和观看 logger.root.handlers
这就是我如何重现您的效果:
In [1]: import logging
In [2]: logging.basicConfig(level=logging.DEBUG)
In [3]: logger = logging.getLogger('pluginbrowser')
In [4]: logger.info('=== doing something ===')
INFO:pluginbrowser:=== doing something ===
In [5]: logging.root.addHandler(logging.StreamHandler())
In [6]: logger.info('=== doing something ===')
INFO:pluginbrowser:=== doing something ===
=== doing something ===
当使用 python 记录器时,我的程序开始时可以正常记录,但在某些时候日志输出开始输出两次行,如下所示:
DEBUG:pluginbrowser:Scanning plugs
DEBUG:pluginbrowser:Doing good stuff
....
INFO:pluginbrowser:=== doing something ===
=== doing something ===
目前我所有的 python 文件都包含行
LOGGER = logging.getLogger(__name__)
LOGGER.setLevel(logging.DEBUG)
因此,加倍的消息来自pluginbrowser.py 文件。检查这个,我发现在我的程序开始时,相同的文件输出一些日志而没有加倍行。我试图找出它到底发生在哪一点,但我不知何故被困在这里。
我也读过 log messages appearing twice with Python Logging 但我根本没有使用 configure_logging
。
看起来你在某个地方添加了一个额外的处理程序。 我会在代码中搜索 addHandler。您还可以调试和观看 logger.root.handlers
这就是我如何重现您的效果:
In [1]: import logging
In [2]: logging.basicConfig(level=logging.DEBUG)
In [3]: logger = logging.getLogger('pluginbrowser')
In [4]: logger.info('=== doing something ===')
INFO:pluginbrowser:=== doing something ===
In [5]: logging.root.addHandler(logging.StreamHandler())
In [6]: logger.info('=== doing something ===')
INFO:pluginbrowser:=== doing something ===
=== doing something ===