我已将最大文件大小设置为100Kb。但是超过大小时,不会生成新的日志文件。而是文件大小不断增加。如果我重新启动服务器,则会生成新的日志文件。有人可以告诉我这是正确的情况还是因为任何设置问题?
我的log4j设置如下。
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.File=D:/logs/sample.log
log4j.appender.file.Append = true
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.MaxFileSize = 100KB
log4j.appender.file.MaxBackupIndex = 5
log4j.appender.file.layout.ConversionPattern=[%d] %-5p %c %x - %m%n
提前感谢!
答案 0 :(得分:1)
这是因为在rollOver()
中的RollingFileAppender.java
方法中,当前日志文件的重命名失败。
renameSucceeded = file.renameTo(target);
这里是file.renameTo(target);返回false。要解决此问题,请覆盖该方法并添加自定义代码以解决问题。一种方法是在上面的语句之后添加以下代码。
if(!renameSucceeded) //custom code begins
{
try
{
FileUtils.copyFile(file, target);
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
bw.write("");
bw.flush();
bw.close();
renameSucceeded = true;
}
catch (IOException e) {
renameSucceeded = false;
}
}