我想遷移到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>
這是我從阿帕奇找到有關TimeBasedTriggeringPolicy: 「多久側翻應該發生基於在日期模式最具體的時間單位。例如,用小時日期模式是最具體的項目,和每4小時增加4次翻轉,默認值爲1。 不應該默認爲1天嗎? – 2014-08-28 18:28:54
它基於您日期模式中反映的最小單位,在您的情況下爲秒。如果這是您想要的,您需要將間隔設置爲全天的秒數。 另外,我認爲你需要添加DatePattern字段(它看起來像你試圖通過FilePattern來做) – coffeeaddict 2014-08-28 18:45:54
因爲Eclipse已經決定它不能再找到我的log4j2.xml文件,所以我必須暫停這個問題。 – 2014-08-28 19:51:36