我试图在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