spring this.logger.isDebugEnabled()

這種寫法在網銀的時候也見到過,不過那個時候沒有太深刻去想,回想起來爲何會在代碼裏邊這麼寫,確實是一個須要瞭解的問題
首先這個問題涉及到了 log 日誌的級別,
  • Logger共有6個log級別,按優先級由低到高排序分別是:
       TRACE < DEBUG < INFO < WARN < ERROR < FATAL
他們分別對應Logger的trace, debug, info, warn, error和fatal方法進行輸出,可是咱們一般只使用debug、info和error這三個最經常使用的級別。運行時的log輸出級別能夠經過更改log4j配置文件來進行配置,就免去了註釋掉debug代碼的尷尬。
好比在這裏定義了INFO級別,則應用程序中全部DEBUG級別的日誌信息將不被打印出來。程序會打印高於或等於所設置級別的日誌,設置的日誌等級越高,打印出來的日誌就越少。若是設置級別爲INFO,則優先級高於等於INFO級別(如:INFO、WARN、ERROR)的日誌信息將能夠被輸出,小於該級別的如DEBUG將不會被輸出。
判斷 logger.isDebugEnabled() 這個,若是日誌級別不是debug 那麼就跳過這個條件下的代碼,進而提升效率(打印少許日誌,運行小量代碼)
相關文章
相關標籤/搜索