使用带有log4j的SizeBasedTriggeringPolicy会出现问题?

时间:2010-10-26 06:26:28

标签: java log4j

我正在使用带有RollingFileAppender的log4j以及带有SizeBasedTriggeringPolicy.log文件的triggeringPolicy被拆分,但是一个文件在大小为11kb时被拆分但是当其达到给定大小时其他文件可以不进行拆分而且还会给出错误消息“log4j:WARN在post中失败-close rollover action“.i无法解决问题。我的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>

请帮我解决这个问题。

由于

2 个答案:

答案 0 :(得分:2)

从多个JVM实例登录到同一日志文件可能导致此行为。解决方案是将processid附加到日志文件名称,但我还没有解决如何执行此操作。

答案 1 :(得分:0)

我遇到了同样的问题。我没有完全调查它,但认为它是由于FixedWindowRollingPolicy总是至少旋转一次,这意味着总是有一个索引1和一个索引2.在你的情况下是一个log_1.log和一个log_2.log,即使你的MaxIndex设置为1。

在我的情况下,将maxIndex增加到2可以解决问题。

干杯, ED