2011-06-14 282 views
3

我有一個關於python標準日誌記錄機制的問題。因此,如果我使用logging.config.fileConfig來加載我的配置文件,那麼我使用logging.getLogger在創建之後對它們進行測試,併爲它們的工作創建了一些模塊的記錄器。現在,如果我再次使用相同的配置文件調用logging.config.fileConfig,併爲其他模塊創建記錄器,那麼先前的模塊仍然可以工作?基本上針對以下邏輯:python日誌記錄問題

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在這些調用中不同,那麼該怎麼辦?目前我的記錄器1和記錄器2不工作後,我加載一個新的config_file。所以第一步是檢查這是否是正常行爲。如果是這樣,可以做到這一點,而不需要將兩個config_files合併成一個大文件?

問候, 波格丹

回答

2

配置文件旨在完全取代無論是在confguration現有配置 - 這是不是在配置命名的任何記錄儀,或者其子女,是禁用的fileConfig(),如記錄here。你可以防止這種禁用,但僅限於最近的Python版本。在程序中多次調用fileConfig()通常不是好習慣,除非您有特定的需要。這是不被禁止的,但這並不常見。

常見用法包括在根記錄器上配置處理程序,也可能配置一個或兩個頂級記錄器;這是否適用於你?

+0

嗨,處理程序對於所有定義的記錄器都是相同的,但是我確實需要爲每個模塊使用不同的質量名稱。傳遞「disable_existing_loggers = False」得到了我想要的結果。 – Bogdan 2011-06-14 10:27:59