Python有兩個主要的字符串格式化選項%
和str.format
。 logging
模塊有一個懶惰的功能。爲什麼python日誌記錄模塊使用舊的字符串格式?
logging.debug('The value is %s', huge_arg)
如果日誌行不打印,則不會構造字符串。但是,此功能只有在sting使用舊式%
格式時才起作用。有沒有辦法使用str.format
這個懶惰的功能?有可能是一個名爲ARG這樣的:
logging.debug('The value is {}', fmt_arg=(huge_arg))
它爲什麼會破壞現有的代碼,如果它只是引入一個額外的關鍵字參數(除非有人使用自定義類)? '{}'緩慢使得懶惰記錄更合適。感謝您的鏈接。 – balki
@balki也許不會,但你永遠無法知道人們對你的代碼做了什麼假設。無論如何,它肯定會使代碼路徑複雜化,併爲功能上的好處添加代碼(因爲您已*可以*已經使用{}格式化日誌記錄,如鏈接到的帖子中所述)。而且人們已經表示,他們希望儘可能降低日誌記錄開銷,即使懶惰格式化從第一天開始就已經存在。 –