-
Log4j
log4j :http://logging.apache.org/log4j/較早出現(xiàn)的比較成功的日志系統(tǒng)是Log4j。 Log4j開創(chuàng)的日志系統(tǒng)模型(Logger/Appender/Level)行之有效,并一直延用至今。
Apache-commons-logging
apache-commons-logging :http://commons.apache.org/logging/
這是目前最流行的一個(gè)日志框架,由Apache Jakarta社區(qū)提供。Spring框架、許多老應(yīng)用都依賴于JCL。java.util.logging
java.util.logginghttp://download.oracle.com/javase/6/docs/technotes/guides/logging/overview.html
JDK1.4是第一個(gè)自帶日志系統(tǒng)的JDK,簡稱(JUL)。
JUL并沒有明顯的優(yōu)勢來戰(zhàn)勝Log4j,反而造成了標(biāo)準(zhǔn)的混亂 —— 采用不同日志系統(tǒng)的應(yīng)用程序無法和諧共存。SLF4J
SLF4J(Simple logging facade for Java)它不是一個(gè)真正的日志實(shí)現(xiàn),而是一個(gè)抽象層( abstraction layer),SLF4J使你的代碼獨(dú)立于任意一個(gè)特定的日志API?,F(xiàn)在SLF4J正迅速成為Java世界的日志標(biāo)準(zhǔn)。logback
logback :http://logback.qos.ch/
是較新的日志系統(tǒng)。
它是Log4j的作者吸取多年的經(jīng)驗(yàn)教訓(xùn)以后重新做出的一套系統(tǒng)。它的使用更方便,功能更強(qiáng),而且性能也更高。
Logback不能單獨(dú)使用,必須配合日志框架SLF4J來使用。Log4j2(https://logging.apache.org/log4j/2.x/)
log4j2相對于log4j 1.x有了脫胎換骨的變化,其官網(wǎng)宣稱的優(yōu)勢有多線程下10幾倍于log4j 1.x和logback的高吞吐量、可配置的審計(jì)型日志、基于插件架構(gòu)的各種靈活配置等。如果已經(jīng)掌握log4j 1.x,使用log4j2還是非常簡單的。
日志框架:JUL誕生以后,為了克服多種日志系統(tǒng)并存所帶來的混亂,就出現(xiàn)了“日志框架”。日志框架本身不提供記錄日志的功能,它只提供了日志調(diào)用的接口。日志框架依賴于實(shí)際的日志系統(tǒng)如Log4j或JUL來產(chǎn)生真實(shí)的日志。使用日志框架的好處是:應(yīng)用的部署者可以決定使用哪一種日志系統(tǒng)(Log4j還是JUL),或者在多種日志系統(tǒng)之間切換,而不需要更改應(yīng)用的代碼。(SLF4j,Apache-commons-logging)
筆者目前使用的是Log4j2+SLF4j的組合