幾乎在每一個項目中,我請使用Log4j的或SLF4J的logback與記錄事件和幾乎無處不在我寫類似避免的Log4j/SLF4J調試啓用檢查
if (log.isDebugEnabled()) {
log.debug("I'm here doing this stuff");
}
有時你看不到實際的方法邏輯與所有這些日誌代碼。 我無法刪除log.isDebugEnabled()
檢查,因爲即使我使用Slf4j和{}
功能,如果未啓用調試(或任何級別),某些日誌信息可能會計算並丟失。
log.debug("Here is the data: {}", calculateDataFromSeveralDataSourcesDuh());
這裏的問題是:有沒有辦法推遲登錄信息的計算,所以它只有在適當的日誌級別而無需在應用程序代碼檢查啓用計算?
如果我不能使用Java 8並且我使用Slf4j API,那麼有什麼可能的選擇,所以Log4j2不可用?
謝謝,這是一個不錯的選擇。我希望我可以在我當前的項目中使用Java 8和Log4j2。) – Kuvaldis
我編輯了答案以涵蓋log4j – muued