Python套接字处理程序日志记录对某些模块不起作用



我有一个奇怪的问题。我正在使用logging.config将我的记录器设置为使用sockethandler。一切都很好,除了2/10+模块似乎没有记录任何内容。好吧,我的意思是,除了这两个之外,我在日志服务器上看到了所有内容的输出。这很奇怪,它对某些人有效,但对其他人无效。我用以下行初始化每个模块的记录器:

import logging
import logging.config
logging.config.fileConfig(config.main_log_conf)
logger = logging.getLogger("CAKE")

我认为问题可能是记录器名称冲突,因此上面的CAKE,但这不起作用。

下面是我正在使用的conf文件。

[loggers]
keys=root
[handlers]
keys=socketHandler
[formatters]
keys=simpleFormatter
[logger_root]
handlers=socketHandler
level=DEBUG
[handler_socketHandler]
class=handlers.SocketHandler
level=DEBUG
formatter=simpleFormatter
args=('localhost', handlers.DEFAULT_TCP_LOGGING_PORT)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
不要从每个模块调用fileConfig()。在一个程序(进程)中,通常应该只有一个调用来设置日志记录配置,从if __name__ == '__main__'子句调用。还要注意,您应该(通常)将disable_existing_loggers=False传递给fileConfig——仅出于向后兼容性的原因,默认值为True。请参阅此处了解更多信息。

最新更新