超过最大大小后,不会生成新的日志文件

Upon exceeding maximum size new log file is not generated

我已将最大文件大小设置为 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

提前致谢!

发生这种情况是因为在 RollingFileAppender.java 中的 rollOver() 方法中,重命名当前日志文件失败。

renameSucceeded = file.renameTo(target);

这里file.renameTo(目标); returns 错误。要解决此问题,请重写该方法并添加自定义代码以修复该问题。一种方法是在上述语句后添加以下代码。

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;
        }
      }