Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改log4j中的文件名_Java_Apache_Logging - Fatal编程技术网

Java 更改log4j中的文件名

Java 更改log4j中的文件名,java,apache,logging,Java,Apache,Logging,如何在滚动文件追加器中更改文件名在文件达到最大限制后,当前正在显示文件名 myStruts1App.log myStruts1App.log.1 myStruts1App.log.2 我需要文件名为 myStrutsApp1.log myStrutsApp2.log 示例代码 <appender name="file" class="org.apache.log4j.RollingFileAppender"> <param name="append" value="fals

如何在滚动文件追加器中更改文件名在文件达到最大限制后,当前正在显示文件名

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>

没有给出正确的输出,文件名为myStruts1App-%i.log.1Yes。这是针对log4j2.x的。。。没有补充这一信息。我还没有在1.x版本中尝试过。你能提供1.xu吗?根据对代码的分析,幸运的是,1.x版本没有这样做。您可以扩展RollingFileAppender并使用它。我在我的答案中添加了代码,其中发生了翻滚时的重命名。希望他的帮助。
 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);
}
  }