配置log4j以进行maxsize和rotation

我在我的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个我的要求,对吧?

我怎么能这样做? 谢谢大家。

您的配置很好,测试它将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

您可以为文件删除目的创建批处理文件…批处理文件的内容如下所示

 cd "C:\\ 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。