我工作的一个项目,我们有一个加载多个插件核心应用程序。 每个插件都有自己的配置文件,核心应用程序也有一个。记录 - 合并多个配置文件
我们正在使用从Python的标准库中的优秀日志模块。 日志记录模块包含从.ini文件加载日志记录配置的功能。 但是,如果加载另一个配置文件,则其他文件将被丢弃,并且只会使用新配置。
我想这样做是为了我的日志配置分割成多个文件,从而使应用程序可以加载自己的配置文件,然后加载每个插件的合并他们的日志配置到主之一。
注:fileConfig有一个叫做可设置为False disable_existing_loggers的选项。但是,这只会保留现有的记录器存活,但它仍然清除处理程序的内部映射(这意味着插件的配置不能使用应用程序配置文件中定义的处理程序)。
我可以手动合并文件来产生我自己的配置,但我宁愿避免这种情况。
感谢。
使其更清晰,我愿意做这样的事情:
# application.ini
[loggers]
keys=root,app
[handlers]
keys=rootHandler,appHandler
[formatters]
keys=myformatter
[logger_root]
# stuff
[handler_rootHandler]
# stuff
[formatter_myformatter]
# stuff
...
# plugin.ini
[loggers]
keys=pluginLogger # no root logger
[handlers]
keys=pluginHandler # no root handler
# no formatters section
[logger_pluginLogger]
# stuff
formatter=myformatter # using the formatter from application.ini