在web項目中,很多時候會用到日志管理工具,常見的日志管理用具有:JDK logging(配置文件:logging.properties) 和log4j(配置文件:log4j.properties) 。
日志工具有很多,應用程序這個框架用這個,另外一個框架用另外一個日志。配置日志就很麻煩。
各自日志提供各自的,
Self4j這個工具提供一個接口,用來管理日志工具,加那個日志的jar包,就使用哪個日志。
SLF4J,即簡單日志門面(Simple Logging Facade for Java),不是具體的日志解決方案,它只服務於各種各樣的日志系統。按照官方的說法,SLF4J是一個用於日志系統的簡單Facade,允許最終用戶在部署其應用時使用其所希望的日志系統。實際上,SLF4J所提供的核心API是一些接口以及一個LoggerFactory的工廠類。從某種程度上,SLF4J有點類似JDBC,不過比JDBC更簡單,在JDBC中,你需要指定驅動程序,而在使用SLF4J的時候,不需要在代碼中或配置文件中指定你打算使用那個具體的日志系統。如同使用JDBC基本不用考慮具體數據庫一樣,SLF4J提供了統一的記錄日志的接口,只要按照其提供的方法記錄即可,最終日志的格式、記錄級別、輸出方式等通過具體日志系統的配置來實現,因此可以在應用中靈活切換日志系統。如果你開發的是類庫或者嵌入式組件,那么就應該考慮采用SLF4J,因為不可能影響最終用戶選擇哪種日志系統。在另一方面,如果是一個簡單或者獨立的應用,確定只有一種日志系統,那么就沒有使用SLF4J的必要。假設你打算將你使用log4j的產品賣給要求使用JDK 1.4 Logging的用戶時,面對成千上萬的log4j調用的修改,相信這絕對不是一件輕松的事情。但是如果開始便使用SLF4J,那么這種轉換將是非常輕松的事情。
看下slf4j的工具:

版本保持一致:

日志的級別:

這個錯誤級別又低到高,輸出的方式是低級別的會把它本身的日志信息以及比它級別高的日志信息輸出。高級別的輸出高級別的以及比這個高級別還高的信息。
意思是如果是debug模式,會將五種日志都輸出。如果是error模式,就只輸出error級別和fatal級別。意思就是比當前低級別的不輸出。

所以使用的步驟如下:
(1)加入slf4j的jar包,比如我要使用log4j,需要加入log4j的jar包。然后加入slf4j中slf4j-log4j的連接jar包。
(2)加入log4j的日志配置文件:log4j.properties.
(3)如果我需用使用JDK logging,那我就加入它的jar包,以及與slf4j連接的jar包,然后配置上日志的配置文件就可以了。
其實slf4j的作用就是保證日志間的切換靈活。一個日志切換到另一個日志只需要修改下jar包,添加下配置即可。
