首页 > 解决方案 > 如何将记录网络事件的 python 日志记录食谱示例与 logging.config.listen 线程结合起来?

问题描述

理论上这应该很简单。以这里的日志记录食谱为例:

https://docs.python.org/3/howto/logging-cookbook.html#sending-and-receiving-logging-events-across-a-network

我想添加动态更改日志记录配置的功能。我只是补充说:

logging.config.dictConfig(...) # setup the root logger
config_thread = logging.config.listen()
config_thread.start()
tcpserver = LogRecordSocketReceiver()

并且在启动时,这适用于提供的通过网络将日志事件发送到套接字接收器的示例。

但是,一旦我发送新配置,就会出现问题。之后,日志服务器将不再产生任何日志消息。即使每次handleLogRecord()调用都通过logging.getLogger().

关于我缺少什么的任何想法?

标签: pythonloggingpython-logging

解决方案


您需要确保在配置字典中,您已disable_existing_loggers设置为False. 否则,当应用新配置时,现有记录器将被禁用并且不再产生任何输出。


推荐阅读