Java 将SizeBasedTriggeringPolicy与log4j一起使用会出现问题吗?

Java 将SizeBasedTriggeringPolicy与log4j一起使用会出现问题吗?,java,log4j,Java,Log4j,我正在使用带有RollingFileAppender的log4j,以及带有SizeBadeTriggeringPolicy的triggeringPolicy.log文件被拆分,但一个文件大小为11kb,但另一个文件在达到给定大小时可以在不拆分的情况下增长,并且还提供了写入消息“log4j:关闭后滚动操作中出现警告失败”。我无法解决此问题。我的lo4j.xml文件包含以下配置: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE lo

我正在使用带有RollingFileAppender的log4j,以及带有SizeBadeTriggeringPolicy的triggeringPolicy.log文件被拆分,但一个文件大小为11kb,但另一个文件在达到给定大小时可以在不拆分的情况下增长,并且还提供了写入消息“log4j:关闭后滚动操作中出现警告失败”。我无法解决此问题。我的lo4j.xml文件包含以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
  <appender class="org.apache.log4j.rolling.RollingFileAppender" name="FixedWindowRollingFile">
    <param name="Append" value="true"/>
    <param name="ImmediateFlush" value="true"/>
    <rollingPolicy class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
      <param name="fileNamePattern" value="E:/BonitaMQ_workflow/RequestHandlerService/logs/log_%i.log"/>
      <param name="minIndex" value="1"/>
      <param name="maxIndex" value="1"/>
    </rollingPolicy>
    <triggeringPolicy class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
      <param name="MaxFileSize" value="10240"/>
    </triggeringPolicy>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{MMM,dd yyyy h:mm:ss a } %p %c{1}:%L - %m%n"/>
    </layout>
  </appender>

  <logger name="com.bonitaservice" additivity="false">
    <level value="INFO"/>
    <appender-ref ref="FixedWindowRollingFile"/>
  </logger>

  <root>
    <priority value="Debug"/>
    <appender-ref ref="FixedWindowRollingFile"/>
  </root>
</log4j:configuration>

请帮我解决这个问题


谢谢,我也有同样的问题。我没有对它进行充分的调查,但我相信这是因为FixedWindowRollingPolicy始终至少旋转一次,这意味着始终存在索引1和索引2。在您的情况下,即使MaxIndex设置为1,也会使用log_1.log和log_2.log

在我的例子中,将maxIndex增加到2解决了这个问题

干杯,
ED

此行为可能是由从多个JVM实例记录到同一日志文件引起的。解决方案是将processid附加到日志文件名中,但我还没有想出如何做。

我尝试了你的建议,但它对我不起作用。但我的问题仍然存在。我在系统中遇到了这个问题,这似乎就是问题所在。我怀疑这是Windows独有的功能:从我所能看出,一个进程的登录阻止了文件在另一个进程中的移动。