超过最大大小后,不会生成新的日志文件
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;
}
}
我已将最大文件大小设置为 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;
}
}