列印日誌時為什麼要使用isDebugEnabled 、isInfoEnabled
列印日誌時為什麼要使用isDebugEnabled 、isInfoEnabled
轉載:https://blog.csdn.net/hjun01/article/details/41442567
對於列印的資訊沒有字元拼接或者物件(說白了沒有tostring的方法呼叫),如果列印的資訊是固定字串的話,就加上面的判斷和不加其實意義是一樣的
log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
專案在應用log4j列印Debug,Info和Trace級別的log時需要加上對應的三個方法進行過濾,程式碼如下:
if (log.isDebugEnabled()) {
log.debug(" From: " + req.getFrom().toString() +
" To: " + req.getTo().toString() +
" CallId: " + req.getCallId() +
" msg:" + msg);
}
其作用是因為Debug,Info和Trace一般會列印比較詳細的資訊,而且列印的次數較多,如果我們不加log.isDebugEnabled()等
進行預先判斷,當系統loglevel設定高於Debug或Info或Trace時,雖然系統不會答應出這些級別的日誌,但是每次還是會拼接
引數字串,影響系統的效能。
2.錯誤的優化方法
部分編碼人員因為不瞭解機制,從程式碼複用性和簡潔性而言定義如下函式來封裝
private void debug(String msg) {
if (log.isDebugEnabled()) {
log.debug(msg);
}
}
其實這種封裝方式是錯誤的,因為當系統中呼叫debug(msg)函式還是出現字串的拼接
相關文章
- 【Spring】日誌列印sql,日誌配置列印sqlSpringSQL
- 日誌列印
- java日誌列印使用指南Java
- Open Feign使用方法、等待時間、日誌列印功能
- 日誌審計是什麼?為什麼企業需要日誌審計?
- 為何要列印日誌?C++在高併發下如何寫日誌檔案(附原始碼)?C++原始碼
- 日誌脫敏是什麼意思?為什麼要做日誌脫敏?用什麼工具好?
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- Log 工具列印日誌
- Unity——日誌列印工具Unity
- 日誌--列印規範
- python 使用 loguru 輸出異常日誌同時列印變數值Python變數
- MySQL列印死鎖日誌MySql
- feign配置日誌不列印
- 日誌到底該如何列印?
- 39,日誌列印sql 配置SQL
- python怎麼將列印輸出日誌檔案Python
- Flutter | 日誌還能這麼列印,太秀了!Flutter
- 雲列印為什麼這麼便宜?
- 設定mybatis 是否列印日誌MyBatis
- Linux動態列印kernel日誌Linux
- Python 日誌列印之logging.config.dictConfig使用總結Python
- [Java/日誌] 日誌框架列印應用程式日誌程式碼的執行情況Java框架
- 為什麼要謹慎使用Linux find命令?Linux
- MySQL什麼時候輪換二進位制日誌MySql
- Flutter - 列印好用的Debug日誌Flutter
- 【工具】方法日誌列印+任務切片
- 解決Kafka消費者啟動時頻繁列印日誌Kafka
- 為什麼計算機時間要從1970年1月1日開始算起計算機
- 為什麼要code reviewView
- 為什麼要寫作
- 為什麼說Java中要慎重使用繼承Java繼承
- java 日誌脫敏框架 sensitive,優雅的列印脫敏日誌Java框架
- Python是什麼?為什麼要掌握python?Python
- GC 為什麼要掛起使用者執行緒? 什麼愁什麼怨?GC執行緒
- 日誌列印的碎碎念總結
- python logger 列印日誌錯誤行數Python
- SpringBoot自定義註解、AOP列印日誌Spring Boot