我对python标准日志记录机制有疑问。因此,如果我使用logging.config.fileConfig来加载我的配置文件,那么我使用logging.getLogger创建一些模块的记录器,并在创建后立即对它们进行测试。现在,如果我再次使用相同的配置文件调用logging.config.fileConfig并为其他模块创建记录器,那么previos仍可以使用吗?基本上是出于以下逻辑:
logging.config.fileConfig(config_file)
logger1 = logging.getLogger(module1)
logger2 = logging.getLogger(module2)
logging.config.fileConfig(config_file)
logger3 = logging.getLogger(module3)
两个调用中的config_file相同。 logger1和logger2应该正常运行吗?如果config_file在这些调用中有所不同怎么样?目前,我加载新的config_file后,我的logger1和logger2无法正常工作。所以第一步是检查这是否是正常行为。如果可以的话,可以在不将两个config_files合并为一个大的情况下完成这项工作吗?
此致 波格丹
答案 0 :(得分:2)
配置文件旨在用配置中的任何内容完全替换现有配置 - fileConfig()
禁用配置中未命名的任何记录器或其子项,如文档所述here 。您可以阻止此禁用,但仅限于最近的Python版本。除非您有特殊需要,否则在程序中多次调用fileConfig()
通常不是好习惯。这不是禁止的,但这并不常见。
常见的用法是在根记录器上配置处理程序,也可能是一个或两个顶级记录器;这适用于你吗?