推薦使用SLF4J(Simple Logging Facade for Java)作為日志的api,SLF4J是一個用于日志系統(tǒng)的簡單Facade,允許最終用戶在部署其應(yīng)用時使用其所希望的日志系統(tǒng)。
1、Slf4j優(yōu)勢
與使用apache commons-logging或直接使用log4j相比,SLF4J提供了一個名為參數(shù)化日志的高級特性,可以顯著提高在配置為關(guān)閉日志的情況下的日志語句性能,
log.debug("Found {} records matching filter: '{}'", records, filter);//slf4j
log.debug("Found " + records + " records matching filter: '" + filter + "'");//log4j
可以看出SLF4J的優(yōu)點(diǎn)有:更簡略易讀;在日志級別不夠時,少了字符串拼接的開銷,不會調(diào)用對象(records/filter)的toString方法。
Slf4j在1.6.0之后,更是支持了異常堆棧的打印,作為最后一個參數(shù)傳入即可,基本滿足了日志的常見打印場景。
log.error("Failed to format {}", s, e);
2、注意Logger間的繼承關(guān)系
logger的繼承是通過命名來實(shí)現(xiàn)的。
子logger會默認(rèn)繼承父logger的appender,將它們加入到自己的Appender中;除非加上了additivity="false",則不再繼承父logger的appender。
子logger只在自己未定義輸出級別的情況下,才會繼承父logger的輸出級別。
以上這篇slf4j與log4j全面了解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。