一 log4j的指令解析
1.1 案例配置解析
log4j.rootLogger=INFO,file2,file3
#file2----------
log4j.appender.file2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file2.Append=true
log4j.appender.file2.DatePattern='_' yyyy-MM-dd-HH
log4j.appender.file2.File=H:/logs/message2.log
log4j.appender.file2.Threshold=INFO
log4j.appender.file2.Encoding=UTF-8
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=<%d{yyyy-MM-dd HH\:mm\:ss\:SSS} [%p]> %X{module}-%X{random}: %m%n
指令解析:
1 log4j.rootLogger=INFO,file2,file3 中的INFO 是日志級别而後面的 file2,file3 就是制定的輸出檔案
2. log4j.appender.file2=org.apache.log4j.DailyRollingFileAppender 這一行配置就是log4j每天一個日志檔案
3.log4j.appender.file3.Append=true 日志檔案是否追加
4.log4j.appender.file3.DatePattern='_' yyyy-MM-dd-HH-mm 這裡就是定義的時間格式,如果時間定義到分鐘(mm)就是每分鐘生成一個日志檔案,而這裡定義的這個格式就是日志名字尾。
DatePattern中配置的'_'yyyy-MM-dd-HH-mm'.log' 意思是根據這個時間來定時生成檔案,并且把'_'yyyy-MM-dd-HH-mm'.log'附加在原檔案的後面,即:logcase_'yyyy-MM-dd-HH-mm'.log', 由于定義到mm是以就每分鐘生成一次。
5.log4j.appender.file3.File=H:/logs/message3.log 這裡定義了日志路徑
6. log4j.appender.file2.Threshold=INFO 日志輸出級别
7.log4j.appender.file3.Encoding=UTF-8 日志編碼
8.log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file3.layout.ConversionPattern=<%d{yyyy-MM-dd HH\:mm\:ss\:SSS} [%p]>[Galaxy-IRS] %X{module}-%X{random}: %m%n
定義的日志格式
9.每個生成的日志最大是1KB,允許生成的最多檔案數量是3,即是檔案數量達到上限3個以後,則覆寫之前的檔案。
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
1.2 按自定義時間生成日志
1、log4j.appender.file3.DatePattern='_' yyyy-MM-dd-HH-mm 每分鐘生成一個日志檔案
2、log4j.appender.file3.DatePattern='_' yyyy-MM-dd-HH 每小時生成一個日志檔案
3、log4j.appender.file3.DatePattern='_' yyyy-MM-dd 每天生成一個日志檔案
二 log4j的配置案例
https://www.cnblogs.com/wang3680/p/7690607.html
2.1 測試代碼
1.測試代碼
package cn.zhoucy.test;
import org.apache.log4j.Logger;
public class TestLog4j {
private static Logger logger=Logger.getLogger(TestLog4j.class); // 擷取logger執行個體
public static void main(String[] args) {
logger.debug("調試debug資訊");
logger.info("普通Info資訊");
logger.warn("警告warn資訊");
logger.error("error資訊");
logger.fatal("嚴重錯誤fatal資訊");
}
}
2.log4j的日志檔案
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 = E://File.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 = E://DailyRollingFile.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 = E://RollingFile.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
由log4j的配置檔案:
Console 和File是正常的控制台和檔案輸出,
而DailyRollingFile 和RollingFile分别是按天生成,和按日志檔案指定大小生成檔案。運作後,控制台輸出如下:
2.2 每天生成一個日志檔案
#DailyRollingFile
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
解釋:
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender 就表明是每天生成一個日志檔案。
log4j.appender.DailyRollingFile.File = E://DailyRollingFile.log 表明生成的日志檔案名稱,不過要注意,這裡表示的是當天的檔案名字,曆史檔案會以日期結尾。
2.3 每天生成一個日志檔案
有的時候,會需要指定檔案大小,比如說,日志檔案生成到了1M,就新生成一個日志檔案,同時可以指定一共可以生成的最大檔案數。配置檔案如下:
#RollingFile
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = E://RollingFile.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
關鍵的就是第3行和第4行:
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
表示的是,每個生成的日志最大是1KB,允許生成的最多檔案數量是3,即是檔案數量達到上限3個以後,則覆寫之前的檔案。