Java Log4j2:RollingFile appender中的filePattern的属性替换工作不正确

Java Log4j2:RollingFile appender中的filePattern的属性替换工作不正确,java,logging,tomcat7,log4j2,rollingfileappender,Java,Logging,Tomcat7,Log4j2,Rollingfileappender,我试图在Tomcat7.0.23中配置RollingFile appender,其中log4j2(2.0.2)包含10个日志文件 我在文件模式中使用${sys:catalina.base},它不起作用,日志文件放在tomcat/bin/${sys:catalina.base}/目录中 有趣的是,第一个日志文件(没有数字)是在tomcat/logs下创建的,这意味着它成功地将filename属性映射到实际路径 当我用filePattern=“C:/apache-tomcat-7.0.23/logs

我试图在Tomcat7.0.23中配置RollingFile appender,其中log4j2(2.0.2)包含10个日志文件

我在文件模式中使用${sys:catalina.base},它不起作用,日志文件放在tomcat/bin/${sys:catalina.base}/目录中

有趣的是,第一个日志文件(没有数字)是在tomcat/logs下创建的,这意味着它成功地将filename属性映射到实际路径

当我用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>

这意味着没有正确解释文件模式

如何克服这个问题而不必静态地指定日志目录


感谢您的帮助

您描述的内容与中报告的问题非常相似。这是2.0-RC2版本中引入的一个bug。它最近已在master中修复,该修复将包含在即将发布的2.1版本中。(我希望2.1将在下周某个时候发布——但没有承诺…)


如果您赶时间,可以在本地查看和2.1快照中的代码。

我看到了完全相同的问题。我深入研究了源代码,发现filePattern与fileName的处理方式相同。。。然后我意识到我在Windows上使用“\”s。。。log4j不喜欢(不应该)。无论如何,在我的例子中,log4j不是问题,而是我的问题。2.1的发布过程已经开始,团队现在正在验证发布。如果没有找到ShowStopper,它应该在三天内可用。请参阅我上面的评论-这是我的错-而不是log4j的。无论如何我会给你赏金的:-)谢谢你的赏金!事实上,我认为这是(几天后就是)log4j的问题:如果这个bug没有被修复,那么像路径包含
${sys:user.home}
这样的常见用例将无法工作。有几个人遇到了这个问题,我很高兴这个问题不会很快成为问题。也许我们都有问题:-)@RemkoPopma谢谢你的帮助!