我正在尝试使用带有10个日志文件的log4j2(2.0.2)在tomcat 7.0.23中配置RollingFile appender。
我在filePattern中使用$ {sys:catalina.base},它没有工作,日志文件放在tomcat / bin / $ {sys:catalina.base} /目录中。
有趣的是,在tomcat / logs下创建了第一个日志文件(没有数字),这意味着它成功将filename属性映射到真实路径。
当我用filePattern =&#34替换$ {sys:catalina.base}时; C:/apache-tomcat-7.0.23/logs/app.%i.log"有用。
<?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。
如何在不必静态指定日志目录的情况下克服此问题?
感谢您的帮助
答案 0 :(得分:3)
您所描述的内容与LOG4J2-829中报告的问题非常相似。这是2.0-RC2版本中引入的错误。它最近在master中修复,修复程序将包含在即将发布的2.1版本中。 (我希望2.1将在下周某个时候发布 - 但没有承诺......)
如果您赶时间,可以在本地查看Log4j2 GIT repository和build 2.1-SNAPSHOT的代码。