是否有可能在Python中實現以下(僞)代碼的等價物?Python中可以使用C++風格的日誌記錄宏嗎?
#define DEBUG(topic, msg) LOG_IMPL(Logger.DEBUG, topic, msg)
#define INFO(topic, msg) LOG_IMPL(Logger.INFO, topic, msg)
#define LOG_IMPL(level, topic, msg) if(Logger.level() <= level) { Logger.log(level, topic, msg); }
DEBUG("MyComponent", "What you logging at?")
這裏的好處是您不必評估字符串日誌消息,例如,將字符串連接,調用.format()等)
UPDATE:
Lazy logger message string evaluation - 這個回答我的問題,所以我會投來關閉這個職位。
哇,這是令人厭惡的C++宏,沒有任何目的。 – Puppy
你到底在問什麼?這些定義可以很容易地以任何語言作爲功能來實現。 –
@Graeme:據我所知,你不僅要求一個很好的日誌記錄模塊(而且內置的python很棒),而且對於不評估日誌消息的系統(如果構建日誌消息的計算量很大)if日誌記錄被禁用。我錯了嗎? –