2013-04-25 35 views
1

我在我的Java應用程序中使用了log4j。 我想配置maxsize(最大值爲1Mb)和15天后自動刪除。配置log4j以獲取最大尺寸和旋轉

# Root logger option 
log4j.rootLogger=INFO, file 

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\loging.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=15 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

但似乎在log4j不能配置2我的要求,對吧?

我該怎麼辦呢? 謝謝大家。

回答

1

你的配置是好的,測試它改變MAXFILESIZE以1KB和運行下面的代碼:

public class LogTest { 
    static Logger log = Logger.getLogger("LogTest"); 

    public static void main(String[] args) 
    { 
     PropertyConfigurator.configure("log4j.properties");//file should be in classpath 
     for (int i = 0; i < 20000; i++) 
      log.info("test"); 

      System.out.println("Done"); 

    } 
} 

一旦完成,你應該有共16個文件loging.txt和loging.txt.1到登錄電子.txt.15

1

您可以創建文件刪除目的批處理文件......批處理文件的內容將是如下

cd "C:\<folder-location>\ 
del *.log 

您可以創建一個調度條目每隔15天運行一次該文件...這樣它將在15天后刪除所有日誌文件。 (此外,使用批處理文件,您還可以創建一個日誌文件的zip作爲備份,並保存在其他位置的安全...這是你根本無法使用log4j的東西)

將文件保存爲zip備份使用7-zip)

C:\Program Files\7-Zip\7z.exe a -tzip C:\B\ZipFile.zip C:\A\*.* 

這將在一個zip文件中將文件夾A中的所有文件複製到B.

保留maxsize已由您在log4j配置文件中完成。

+0

我認爲OP意味着刪除超過15天的文件,而不是15天后刪除所有日誌文件,這是您的建議。 – Omertron 2013-08-24 07:51:39