2017-02-21 58 views
0

目前我正在使用log4j進行日誌記錄。它正在完美地生成日誌文件。但問題是:每當我運行我的程序時,生成的新日誌都會追加到已經生成的日誌中。 下面是我log4j的屬性文件:如何在每次使用Log4j運行我的Java程序時新建日誌文件?

log4j.rootCategory = INFO,LOGFILE

log4j.logger.org.apache.axis.enterprise = FATAL,LOGFILE

log4j.appender。 LOGFILE = org.apache.log4j.DailyRollingFileAppender

log4j.appender.LOGFILE.File = applicationLogs.txt

LOG4 j.appender.LOGFILE.Append =真

log4j.appender.LOGFILE.Threshold = DEBUG

log4j.appender.LOGFILE.DatePattern = \ u2018。\ u2019yyy-MM-DD

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

log4j.appender.LOGFILE.layout.ConversionPattern =%d {YYYY-MM-DD HH:MM:SS}%C {1} [%p] %m%n

我每次運行程序時都需要生成一個新的日誌文件。怎麼做? 此文件是完美的,但我想稍作修改。

+2

儘量讓'log4j.appender.LOGFILE.Append'假。使用此設置,它不會追加,而是覆蓋上一個日誌文件。 – SachinSarawgi

回答

2

採取以下步驟:

1. log4j.appender.LOGFILE.File=applicationLogs_${current_date}.txt

2. log4j.appender.LOGFILE.Append=false

current_date合作編輯你的主類,並添加以下代碼:

static{ SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy hhmmss"); System.setProperty("current_date", dateFormat.format(new Date())); }

首先設置每個程序取決於當前的日期(這樣你就不會失去啓動時會創建一個新的日誌文件舊日誌),並通過第二次設置它不會追加到您的舊文件,但覆蓋它。

您可以使用任何一種設置。第一個是可取的,因爲你不會丟失舊的日誌。

0

在代碼中添加類似如下:

String today= Calendar.getInstance() 
    .getTime() 
    .toString() 
    .replaceAll(" ", "_") 
    .replaceAll(":", ""); 
System.setProperty("logfilename", today); 

和屬性文件:

log4j.appender.file.File=C:\\${logfilename}.log 
相關問題