將值插入日誌消息中是否有一些最佳做法?我的谷歌福不是有效的這裏,但我得到這樣this實例說:將值插入日誌消息的正確方法
#Change all logging from this
logger.warning("This is a %s" % var)
#to
logger.warning("This is a %s", var)
像它的最佳做法是每個人都必須遵守。有理由嗎? var
(像一個類的對象)的任何值都會在這裏失敗嗎?
將值插入日誌消息中是否有一些最佳做法?我的谷歌福不是有效的這裏,但我得到這樣this實例說:將值插入日誌消息的正確方法
#Change all logging from this
logger.warning("This is a %s" % var)
#to
logger.warning("This is a %s", var)
像它的最佳做法是每個人都必須遵守。有理由嗎? var
(像一個類的對象)的任何值都會在這裏失敗嗎?
使用後者。記錄模塊只會在處理消息時插入值。
這意味着您可以爲調試消息節省CPU週期,例如,如果日誌級別排除它們。
這是記錄在logging
HOWTO, "Optimization" chapter:
消息的格式化參數被推遲,直到它無法避免。
您可能需要按照該章節給出的其他建議來避免昂貴的計算,以便進行日誌記錄。
在內部,logging
模塊使用第一種形式,所以任何無法轉換爲字符串的值都將失敗。
我認爲第二種形式更好,因爲記錄者有機會檢查在替換之前是否啓用了warning
級別。