我工作的一個項目,我們有一個加載多個插件核心應用程序。 每個插件都有自己的配置文件,核心應用程序也有一個。記錄 - 合併多個配置文件
我們正在使用從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