日志系統(tǒng)是具體的日志框架,日志門面是不提供日志的具體實現(xiàn),而是在運行時動態(tài)的綁定日志實現(xiàn)組件來工作,是一種外觀模式。
日志系統(tǒng)
1、java.util.logging (JUL),JDK1.4 開始,通過 java.util.logging 提供日志功能。雖然是官方自帶的log lib,JUL的使用確不廣泛。
2、Log4j,Log4j 是 apache 的一個開源項目,創(chuàng)始人 Ceki Gulcu。Log4j 應該說是 Java 領域資格最老,應用最廣的日志工具。Log4j 是高度可配置的,并可通過在運行時的外部文件配置。它根據(jù)記錄的優(yōu)先級別,并提供機制,以指示記錄信息到許多的目的地,諸如:數(shù)據(jù)庫,文件,控制臺,UNIX 系統(tǒng)日志等。Log4j 的短板在于性能,在Logback 和 Log4j2 出來之后,Log4j的使用也減少了。
3、Logback,Logback 是由 log4j 創(chuàng)始人 Ceki Gulcu 設計的又一個開源日志組件,是作為 Log4j 的繼承者來開發(fā)的,提供了性能更好的實現(xiàn),異步 logger,F(xiàn)ilter等更多的特性。
4、Log4j2,維護 Log4j 的人為了性能又搞出了 Log4j2。Log4j2 和 Log4j1.x 并不兼容,設計上很大程度上模仿了 SLF4J/Logback,性能上也獲得了很大的提升。Log4j2 也做了 Facade/Implementation 分離的設計,分成了 log4j-api 和 log4j-core。
日志門面
1、common-logging,common-logging 是 apache 的一個開源項目。也稱Jakarta Commons Logging,縮寫 JCL。
2、slf4j, 全稱為 Simple Logging Facade for Java,即 java 簡單日志門面。作者又是 Ceki Gulcu!這位大神寫了 Log4j、Logback 和 slf4j。類似于 Common-Logging,slf4j 是對不同日志框架提供的一個 API 封裝,可以在部署的時候不修改任何配置即可接入一種日志實現(xiàn)方案。但是,slf4j 在編譯時靜態(tài)綁定真正的 Log 庫。使用 SLF4J 時,如果你需要使用某一種日志實現(xiàn),那么你必須選擇正確的 SLF4J 的 jar 包的集合(各種橋接包)。