我在我的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中无法配置我的两个要求,对吗?
我怎么做? 谢谢大家。
答案 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。