天天看點

spring +log4j 配置日志按天,小時滾動輸出切成檔案一 log4j的指令解析二 log4j的配置案例 2.1 測試代碼

一 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分别是按天生成,和按日志檔案指定大小生成檔案。運作後,控制台輸出如下:

spring +log4j 配置日志按天,小時滾動輸出切成檔案一 log4j的指令解析二 log4j的配置案例 2.1 測試代碼

 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個以後,則覆寫之前的檔案。