1、 slf4j和log4j結合使用:
maven配置:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVeFRUT5dXbiZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zN4EDMyQDMxIDMxcDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
用到的jar包:
Log4j的配置檔案,log4j.properties:
測試檔案:
其中用org.apache.log4j.RollingFileAppender輸出類型輸出格式如下圖:
即如果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配置:
需要的jar包:
配置檔案,logback.xml:
(備注:該檔案如果是web項目則放在src/java/resources下面,如果是java項目則放在src下面,如果放錯了就失效了!)
其中app.properties檔案内容:
為什麼說<appender-ref>FILE</appender-ref>是錯誤的:
其中FILE中涉及到到檔案到達10KB就會生成新檔案,但是經過我測試沒有發現有新檔案生成,所有的檔案都在統一的一個檔案裡面那個檔案就是file檔案。
用SAVE_FILE日志配置檔案時能不設定timeBasedFileNamingAndTriggeringPolicy就不要設定了,如果設定了該值并且設定的值還很小,如上圖所示設成2kb當檔案存檔之後在執行log日志就會報如下異常:
參考文獻:
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 部配置設定置解釋說明