2014-08-28 137 views
2

我想遷移到log4j2,我得到一個java.lang.IllegalStateException:「模式不包含日期。」log4j2:模式不包含日期

我有一個filePattern爲每個RollingFile設置,所以我不確定我在做什麼錯。僅供參考,我在Eclipse上運行Tomcat(開普勒)。

這裏是我的log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?> 

<Configuration status="WARN"> 

    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] - %m%n" /> 
     </Console> 

     <RollingFile name="RootFile" fileName="injunction.log" immediateFlush="false" append="false" 
      filePattern="injunction.log.%d{yyyy-MM-dd}"> 
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] - %m%n"/> 
      <Policies> 
       <!-- Roll over the file to the next day --> 
       <TimeBasedTriggeringPolicy /> 
      </Policies> 
      <!-- Only keep up to 30 archived log files --> 
      <DefaultRolloverStrategy max="30"/> 
     </RollingFile> 

     <RollingFile name="DBFile" fileName="db.log" immediateFlush="false" append="false" 
      filePattern="db.log.%d{yyyy-MM-dd}">> 
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] - %m%n"/> 
      <Policies> 
       <!-- Roll over the file to the next day --> 
       <TimeBasedTriggeringPolicy /> 
      </Policies> 
      <!-- Only keep up to 30 archived log files --> 
      <DefaultRolloverStrategy max="30"/> 
     </RollingFile> 

    </Appenders> 

    <Loggers> 
     <Root level="debug"> 
      <AppenderRef ref="Console" /> 
      <AppenderRef ref="RootFile" /> 
     </Root> 

     <Logger name="DBLogger" level="debug" additivity="false"> 
      <AppenderRef ref="Console" /> 
      <AppenderRef ref="DBFile" /> 
     </Logger> 
    </Loggers> 

</Configuration> 

回答

1

TimeBasedTriggeringPolicy需要時間來確定文件應該怎麼經常翻身

+0

這是我從阿帕奇找到有關TimeBasedTriggeringPolicy: 「多久側翻應該發生基於在日期模式最具體的時間單位。例如,用小時日期模式是最具體的項目,和每4小時增加4次翻轉,默認值爲1。 不應該默認爲1天嗎? – 2014-08-28 18:28:54

+0

它基於您日期模式中反映的最小單位,在您的情況下爲秒。如果這是您想要的,您需要將間隔設置爲全天的秒數。 另外,我認爲你需要添加DatePattern字段(它看起來像你試圖通過FilePattern來做) – coffeeaddict 2014-08-28 18:45:54

+0

因爲Eclipse已經決定它不能再找到我的log4j2.xml文件,所以我必須暫停這個問題。 – 2014-08-28 19:51:36

0

這個問題似乎解決本身。我將log4j2.xml移動到了Eclipse的src目錄的頂部,這就實現了。