天天看點

java日志-slf4j和log4j及slf4j和logback

1、  slf4j和log4j結合使用:

maven配置:

java日志-slf4j和log4j及slf4j和logback

用到的jar包:

java日志-slf4j和log4j及slf4j和logback

Log4j的配置檔案,log4j.properties:

java日志-slf4j和log4j及slf4j和logback

測試檔案:

java日志-slf4j和log4j及slf4j和logback

其中用org.apache.log4j.RollingFileAppender輸出類型輸出格式如下圖:

java日志-slf4j和log4j及slf4j和logback

即如果MaxBackupIndex=4則産生4個檔案,最新生成的日志在dy.logs裡面,然後按着日志的老舊是以像下查找,每次存儲的時刻是臨界線程執行完之後進行存儲,如果沒有執行完日志應該是先再是存在記憶體中。

其中:log4j.rootCategory=INFO, stdout , R

此句為将等級為INFO的日志資訊輸出到stdout和R這兩個目的地,stdout和R的定義在下面的代碼,可以任意起名。等級可分為OFF、 FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF則不打出任何資訊,如果配置為INFO這樣隻顯示INFO, WARN, ERROR的log資訊,而DEBUG資訊不會被顯示,具體講解可參照第三部分定義配置檔案中的logger。

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

此句為定義名為stdout的輸出端是哪種類型,可以是

org.apache.log4j.ConsoleAppender(控制台),

org.apache.log4j.FileAppender(檔案),

org.apache.log4j.DailyRollingFileAppender(每天産生一個日志檔案),

org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候産生一個新的檔案)

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

此句為定義名為stdout的輸出端的layout是哪種類型,可以是

org.apache.log4j.HTMLLayout(以HTML表格形式布局),

org.apache.log4j.PatternLayout(可以靈活地指定布局模式),

org.apache.log4j.SimpleLayout(包含日志資訊的級别和資訊字元串),

org.apache.log4j.TTCCLayout(包含日志産生的時間、線程、類别等等資訊)

log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

如果使用pattern布局就要指定的列印資訊的具體格式ConversionPattern,列印參數如下:

%m 輸出代碼中指定的消息

%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL

%r 輸出自應用啟動到輸出該log資訊耗費的毫秒數

%c 輸出所屬的類目,通常就是所在類的全名

%t 輸出産生該日志事件的線程名

%n 輸出一個回車換行符,Windows平台為“rn”,Unix平台為“n”

%d 輸出日志時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921

%l 輸出日志事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。

1、  slf4j和logback結合使用:

maven配置:

java日志-slf4j和log4j及slf4j和logback

需要的jar包:

java日志-slf4j和log4j及slf4j和logback

配置檔案,logback.xml:

java日志-slf4j和log4j及slf4j和logback
java日志-slf4j和log4j及slf4j和logback

(備注:該檔案如果是web項目則放在src/java/resources下面,如果是java項目則放在src下面,如果放錯了就失效了!)

其中app.properties檔案内容:

java日志-slf4j和log4j及slf4j和logback

為什麼說<appender-ref>FILE</appender-ref>是錯誤的:

java日志-slf4j和log4j及slf4j和logback

其中FILE中涉及到到檔案到達10KB就會生成新檔案,但是經過我測試沒有發現有新檔案生成,所有的檔案都在統一的一個檔案裡面那個檔案就是file檔案。

用SAVE_FILE日志配置檔案時能不設定timeBasedFileNamingAndTriggeringPolicy就不要設定了,如果設定了該值并且設定的值還很小,如上圖所示設成2kb當檔案存檔之後在執行log日志就會報如下異常:

java日志-slf4j和log4j及slf4j和logback

參考文獻:

1、http://www.blogjava.net/kit-soft/archive/2009/08/28/292977.html

2、http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedFNATP  官方配置

3、http://logback.qos.ch/manual/architecture.html官方日志級别

4、http://aub.iteye.com/blog/1103685    翻譯官方

5、http://www.cnblogs.com/yongze103/archive/2012/05/05/2484753.html

6、http://lanhuidong.iteye.com/blog/1965267 部配置設定置解釋說明