配置log4j以进行maxsize和rotation

时间:2013-04-25 10:44:21

标签: java log4j

我在我的Java应用程序中使用log4j。 我想配置maxsize(最大值为1Mb)和15天后自动删除。

# 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 个答案:

答案 0 :(得分: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到loging.txt.15

答案 1 :(得分: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\*.*

这会将文件夹A中的所有文件复制到一个zip文件中。

在log4j配置文件中已经完成了保持maxsize。