大項目和大系統調試尤爲重要,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裏面進行配置就行了。
3.你要使用log4j,必須在工程裏面引入log4j的jar包,同時本身就要引入的是slf4j-api的包,如果引入了slf4j-nop包,也就是slf4j的實現,得將其刪除掉。那麼雖然有了api和實現,但是二者並沒有關聯,所以還必須引入slf4-log4j的關聯包。
相當於使用了適配器模式。
引入包了以後,還得有一個配置文件,log4j.properties才行,直接從Hibernate工程下面找一個複製到工程的src目錄下面就行,看看效果。
裏面你以後想要輸出什麼樣的日誌就在log4j.properties裏面進行配置就行了。