我有一个奇怪的问题。我正在使用logging.config来设置我的记录器以使用sockethandler。一切正常,除了2/10 +模块似乎没有记录任何东西。很好,我的意思是我在我的日志服务器上看到除了两者之外的所有内容。这很奇怪,它适用于一些但不适用于其他人。我正在使用以下行初始化每个模块的记录器:
import logging
import logging.config
logging.config.fileConfig(config.main_log_conf)
logger = logging.getLogger("CAKE")
我认为问题可能是记录器名称冲突,因此上面的CAKE,但是没有用。
以下是我正在使用的配置文件。
[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=
答案 0 :(得分:0)
不要从每个模块调用fileConfig()
。通常应该只调用一次来调用从if __name__ == '__main__'
子句调用的程序(进程)中的日志记录配置。另请注意,您应该(通常)将disable_existing_loggers=False
传递给fileConfig
- 默认为True
仅出于向后兼容性原因。有关详细信息,请参阅here。