我試圖在tomcat 7.0.23中配置帶有10個日誌文件的log4j2(2.0.2)的RollingFile appender。Log4j2:PropertyPattern在RollingFile appender中的屬性替換工作不正確
我在filePattern中使用$ {sys:catalina.base},它不起作用,日誌文件放在tomcat/bin/$ {sys:catalina.base} /目錄中。
有趣的部分是,在tomcat/logs下創建了第一個日誌文件(沒有數字),這意味着它成功地將文件名屬性映射到真實路徑。
當我用filePattern =「C:/apache-tomcat-7.0.23/logs/app.%i.log」替換$ {sys:catalina.base}時,它可以工作。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%X{REQ_ID}] [%c{1}] %m%n"/>
</Console>
<RollingFile name="FILE" fileName="${sys:catalina.base}/logs/app.log"
filePattern="${sys:catalina.base}/logs/app.%i.log">
<PatternLayout pattern="%d %-5p [%X{REQ_ID}] [%c{1}] %m%n"/>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</Root>
</Loggers>
</Configuration>
這意味着filePattern沒有正確解釋。
如何克服這個問題而不必靜態指定日誌目錄?
感謝您的幫助
我看到完全相同的問題。 – andersonbd1 2014-10-13 20:48:05
我挖掘了源代碼,並注意到filePattern與fileName的處理方式相同,然後我意識到我在Windows上並且正在使用「\」s ... log4j不喜歡(它不應該) T)。無論如何,在我的情況下,它是*不是*與log4j的問題 - 這是*我*的問題。 – andersonbd1 2014-10-16 19:53:44