1. 程式人生 > >JAVA 日誌框架一覽

JAVA 日誌框架一覽

日誌門面 日誌實現
JCL(Apache Commons Logging)
SLF4j(Simple Logging Facade for Java (SLF4J))
JBoss Logging
Log4j
JUL(java util logging)
LogBack
Log4j2

日誌實現

Log4j:初代的日誌框架,現在已經不再更新。

End of Life On August 5, 2015 the Logging Services Project Management
Committee announced that Log4j 1.x had reached end of life. For
complete text of the announcement please see the Apache Blog. Users of
Log4j 1 are recommended to upgrade to Apache Log4j 2.

LogBack:LogBack是Log4j的開發者開發的一個後續版本,在Log4j的基礎上進行了優化,提升了執行速度,減少了記憶體佔用,並且本身無縫銜接Slf4j,也進行了更加完備的測試,具有更完善的文件等等。具體可以參見 為什麼使用LogBack替換Log4j
Log4j2:Log4j2是Apache基於Log4j開發的一款新的日誌框架,相比前身Log4j,它提供了一些重大改進(具體改進參照 為什麼使用Log4j2),並汲取了Logback中的許多特性。

Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides many of the improvements available in Logback while fixing some inherent problems in Logback’s architecture.

日誌適配層

jar 包名稱 描述
slf4j-jdk14 slf4j到JUL(jdk logging)的適配層
slf4j-log4j12 slf4j到log4j的橋樑的適配層
log4j-slf4j-impl slf4j到log4j2的適配層
logback-classic slf4j到logback的橋樑的適配層

其他

其他,還有日誌之間的其他適配模型
例如:jcl-over-slf4j.jar,作用,當CLASS_PATH下存在該jar時,會將JCL的日誌記錄轉換到Slf4j去實現。過程大致如下:

Start log to Apache Commons Logging ----> jcl-over-slf4j.jar — (redirect) —> SLF4j —> slf4j-log4j12-version.jar —> log4j.jar —> 日誌輸出

log4j-over-slf4j:將使用log4j日誌框架輸出的日誌路由到SLF4J上。

更多請參見:https://www.slf4j.org/legacy.html