我讨厌在这个标题下提出这个问题,但我实际上不知道发生了什么,所以就这样吧。
我正在做另一个项目,我想在其中使用日志记录模块。代码分布在几个文件中,而不是为单独的文件创建单独的记录器对象,我想创建一个包含内容的 logs.py
import sys, logging
class Logger:
def __init__(self):
formatter = logging.Formatter('%(filename)s:%(lineno)s %(levelname)s:%(message)s')
stdout_handler = logging.StreamHandler(sys.stdout)
stdout_handler.setFormatter(formatter)
self.logger=logging.getLogger('')
self.logger.addHandler(stdout_handler)
self.logger.setLevel(logging.DEBUG)
def debug(self, message):
self.logger.debug(message)
并使用此类(在不同的文件中。)
import logs
b = logs.Logger()
b.debug("Hi from a.py")
- 我剥离了整个问题来在这里问这个问题。现在,我有 3 个文件,a.py、b.py 和 main.py。所有 3 个文件都实例化了 logs.Logger 类并打印了一条调试消息。
- a.py & b.py导入“日志”并打印它们的调试消息。
- main.py导入日志,a & b;并打印它自己的调试消息。
文件内容如下:http: //i.imgur.com/XoKVf.png
为什么来自 b.py 的调试消息打印 2 次和来自 main.py 的 3 次?