2013-03-04 27 views
0

我使用以下log4j2.xml文件:log4j2只有一個RollingFile追加程序線路在同一時間

<configuration> 
    <appenders> 
     <RollingFile name="logfile" fileName="C:/opt/log/views/views.log" 
        filePattern="C:/opt/log/views/views.%d{yyyy-ww}.log.gz"> 
      <Policies> 
       <TimeBasedTriggeringPolicy /> 
      </Policies> 
      <DefaultRolloverStrategy max="3" /> 
      <PatternLayout pattern="%d{ISO8601} VIEWS[%p][%c]...." /> 
     </RollingFile> 
    </appenders> 
    <loggers> 
     <root level="TRACE"> 
      <appender-ref ref="logfile" /> 
     </root> 
    </loggers> 
</configuration> 

當我尾部文件並啓動服務器,我得到一次一個日誌消息。它不是附加的,而是用每一個新行替換文件中的唯一行。我對此有點困惑,希望以前有人看到過。提前致謝。

回答

1

至於我可以告訴大家,有什麼不對您的配置(至少在我的機器上它按預期工作)。

也許問題是在模式:

%d{ISO8601} VIEWS[%p][%c].... 

你錯過在最後一個%n(新行),所以一切都是有效的寫在同一行。

0

花了一些時間完全一樣的問題。現在我確信,log4j2(beta9)中的TimeBasedTriggeringPolicy可以處理的最大時間單位是一天,而不是一週或一個月內(如在您的配置中)。

測試:更改配置以

<RollingFile name="logfile" fileName="C:/opt/log/views/views.log" 
    filePattern="C:/opt/log/views/views.%d{yyyy-MM-dd}.log.gz"> 

,它應該神奇的工作。

這已經被報告爲一個錯誤在這裏,但是(截至今天)不是固定的:https://issues.apache.org/jira/browse/LOG4J2-385

相關問題