Log4j官方的appender給出了一下幾種實作
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(檔案),
org.apache.log4j.DailyRollingFileAppender(每天産生一個日志檔案),
org.apache.log4j.RollingFileAppender(檔案大小到達指定尺寸的時候産生一個新的檔案),
org.apache.log4j.WriterAppender(将日志資訊以流格式發送到任意指定的地方)
實際開發我們使用第1,第3和第4種實作;
假如日志資料量不是很大,我們可以用DailyRollingFileAppender 每天産生一個日志,友善檢視;
假如日志資料量很大,我們一般用RollingFileAppender,固定尺寸的日志,假如超過了 就産生一個新的檔案;
我們這裡給出一些執行個體;
log4j.rootLogger=DEBUG, Console ,File ,DailyRollingFile ,RollingFile
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#File
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = C://log2.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
#DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = C://log3.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
#RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = C://log4.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
測試代碼:
package com.open1111;
import org.apache.log4j.Logger;
public class Test {
private static Logger logger=Logger.getLogger(Test.class); // 擷取logger執行個體
public static void main(String[] args) {
logger.info("普通Info資訊");
logger.debug("調試debug資訊");
logger.error("報錯error資訊");
logger.warn("警告warn資訊");
logger.fatal("嚴重錯誤fatal資訊");
logger.error("報錯資訊", new IllegalArgumentException("非法參數"));
int i=0;
while(i<10000){
logger.debug(" RollingFile 調試debug資訊");
logger.debug(" RollingFile 調試debug資訊");
logger.debug(" RollingFile 調試debug資訊");
logger.debug(" RollingFile 調試debug資訊");
logger.debug(" RollingFile 調試debug資訊");
i++;
}
}
}
這裡有兩個新的配置項解釋下:
MaxFileSize 是日志檔案的最大尺寸;根據實際需求來定 10KB 100KB也行
MaxBackupIndex是日志檔案的個數,假如超過了,則覆寫,主要考慮到的是硬碟的容量問題;根據實際需求來定 比如 100 500;
這裡給下日志檔案的效果:
DailyRollingFileAppender 效果:
RollingFileAppender 效果: