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上。