2014-02-27 30 views
0

我正在運行pelican ..所以我有一個模塊,我在其中創建了一個記錄器。父記錄器即。鵜鶘在格式級別輸出數據:消息..更改模塊的Python日誌格式化程序

但我希望將模塊名稱添加到日誌消息..所以有辦法模塊的消息像... xyz:消息之前傳遞給父母,它將其輸出到控制檯..

我知道你可以添加一個新的streamhandler到模塊本身並添加一個格式化程序到它..但我的想法是..添加一個新的streamhandler該模塊將導致模塊本身輸出到控制檯。而不是父母這樣做。那麼做這件事的正確方法是什麼?

回答

0

如果使用命名您的伐木者這樣的推薦做法:

logger = logging.getLogger(__name__) 

然後%(name)s在格式字符串將顯示哪些模塊的事件從記錄。

處理程序被添加到記錄器,因此,如果您的意思是「模塊記錄器本身」,則您的語句「將新的流處理程序添加到模塊本身」纔有意義。

如文檔中所述,最佳做法是不要向庫代碼中的記錄器(或一般而言,除__main__模塊以外的導入模塊)添加處理程序(NullHandler實例除外)。在大多數情況下,您可以向根記錄器添加處理程序,並將記錄到所有其他記錄器的事件發送到該處理程序。

+0

我明白,正確..但父記錄器已格式設置爲:級別消息。 所以模塊名稱沒有被顯示。是否可以將模塊名稱添加到消息中 – Lonewolf

相關問題