更改 log4j 滚动附加程序中的文件名
Change the file name in log4j rolling appender
如何在文件达到最大限制后更改滚动文件附加程序中的文件名,目前它正在显示名称
myStruts1App.log
myStruts1App.log.1
myStruts1App.log.2
我需要文件名
myStrutsApp1.log
myStrutsApp2.log
示例代码
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="10KB" />
<param name="maxBackupIndex" value="5" />
<param name="file" value="${catalina.home}/logs/myStruts1App.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}
%-5p %c{1}:%L - %m%n />
</layout>
</appender>
试试下面的方法。我在文件名中添加了 -%i
。那应该做它的增量部分。让我知道它是否有效。
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="10KB" />
<param name="maxBackupIndex" value="5" />
<param name="file" value="${catalina.home}/logs/myStruts1App-%i.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}
%-5p %c{1}:%L - %m%n />
</layout>
</appender>
1.X版本不支持。这是逻辑代码。尝试扩展 RollingFileAppender 并覆盖 rollOver() 方法。做起来应该是直截了当的。
for (int i = maxBackupIndex - 1; i >= 1 && renameSucceeded; i--) {
file = new File(fileName + "." + i);
if (file.exists()) {
target = new File(fileName + '.' + (i + 1));
LogLog.debug("Renaming file " + file + " to " + target);
renameSucceeded = file.renameTo(target);
}
}
如何在文件达到最大限制后更改滚动文件附加程序中的文件名,目前它正在显示名称
myStruts1App.log
myStruts1App.log.1
myStruts1App.log.2
我需要文件名
myStrutsApp1.log
myStrutsApp2.log
示例代码
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="10KB" />
<param name="maxBackupIndex" value="5" />
<param name="file" value="${catalina.home}/logs/myStruts1App.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}
%-5p %c{1}:%L - %m%n />
</layout>
</appender>
试试下面的方法。我在文件名中添加了 -%i
。那应该做它的增量部分。让我知道它是否有效。
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="10KB" />
<param name="maxBackupIndex" value="5" />
<param name="file" value="${catalina.home}/logs/myStruts1App-%i.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss}
%-5p %c{1}:%L - %m%n />
</layout>
</appender>
1.X版本不支持。这是逻辑代码。尝试扩展 RollingFileAppender 并覆盖 rollOver() 方法。做起来应该是直截了当的。
for (int i = maxBackupIndex - 1; i >= 1 && renameSucceeded; i--) {
file = new File(fileName + "." + i);
if (file.exists()) {
target = new File(fileName + '.' + (i + 1));
LogLog.debug("Renaming file " + file + " to " + target);
renameSucceeded = file.renameTo(target);
}
}