Slf4j和Log4j

大項目和大系統調試尤爲重要,debug並不能完全滿足需要。將運行過程中的信息輸出到屏幕上面或者文件當中,可以有效地幫助調試。

1.先說slf4j,它是什麼,simple logging facade for java,並不是日誌工具的實現,而是一種中間連接。好像JDBC,是一種標準,下面有很多Driver實現, JPA也是一種標準,下面有Hibernate之類的實現。它和java打交道,而log4j就相當於具體的數據庫Driver,使用slf4j操作就行了,而不用管下面具體用的是哪種日誌實現工具。

slf4j自己也有實現,但是並不流行。

2.最常用的就是log4j了

log4j由3個組件構成,Logger,Appender和Layout

Logger是真正的輸出的東西
Appender是指定將log輸出到哪裏
Layout是格式化log的輸出方式

log信息被定義爲5個級別,DEBUG,INFO,WARN,ERROR和FATAL,輸出的時候,只有級別高過所配置的纔會被輸出,也就是說如果你指定ERROR類型的,那麼只有ERROR和FATAL纔會被輸出

可以使用也可以不使用配置文件。但是注意一句話,在如今的大型開發中,能採用配置文件的地方,一定一定要使用配置文件。

怎樣配置呢? 2種方式,xml格式和Java Property格式,貌似還沒有見別人配置過。

基本上來說,最簡單的使用就是直接調用

Logger log = LoggerFactory.getLogger(XXX.class);

在哪一個類裏面log就使用那個類的名字,也就XXX。

在這之前,記住將org.slf4j.Logger 和 org.slf4j.LoggerFactory引入

3.你要使用log4j,必須在工程裏面引入log4j的jar包,同時本身就要引入的是slf4j-api的包,如果引入了slf4j-nop包,也就是slf4j的實現,得將其刪除掉。那麼雖然有了api和實現,但是二者並沒有關聯,所以還必須引入slf4-log4j的關聯包。

相當於使用了適配器模式。

引入包了以後,還得有一個配置文件,log4j.properties才行,直接從Hibernate工程下面找一個複製到工程的src目錄下面就行,看看效果。
裏面你以後想要輸出什麼樣的日誌就在log4j.properties裏面進行配置就行了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章