由于某种原因,在我试图修改的 Python 应用程序中,记录器没有记录任何内容。我追踪了错误到 logging/__init__.py
。
def handle(self, record):
"""
Call the handlers for the specified record.
This method is used for unpickled records received from a socket, as
well as those created locally. Logger-level filtering is applied.
"""
if (not self.disabled) and self.filter(record):
self.callHandlers(record)
我不确定为什么,但是self.disabled
的值是True
。在应用程序中没有任何地方设置过这个值,我也不认为任何软件包正在更改它。日志记录器像往常一样实例化:logger = logging.getLogger(__name__)
。当在实际记录日志之前(在调用logger.info()
之前)设置了logger.disabled = False
时,日志记录器打印预期的日志文本。但如果没有设置,它将在handle()
中返回而不记录任何内容。
有没有办法调试这个问题?也许可以更改Logger
类,使得每当disabled
被写入时调用某个函数...