log4j2配置中的用户JVM参数



我有一个RollingFile Appender定义在我的log4j2.xml。

<RollingFile name="RollingFile" fileName="/logs/app.log"
            filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>%d{HH:mm:ss.SSS} - %-5p - %m - [%l]%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
</RollingFile>

我想做的是在启动时将这个参数传递给JVM:

-Dapp_home=/home/admin/server

文档非常直接。根据我的理解,它应该是这样工作的:

<RollingFile name="RollingFile" fileName="${jvmrunargs:app_home}/logs/app.log"

但它没有。我通过使用绝对路径来验证它是否正常工作。

在我使用log4j (1.x)的另一个应用程序中,它是这样工作的:

log4j.appender.file.File=${app_home}/logs/app.log

查看文档中的System Properties Lookup部分。如果您使用-D将变量定义为系统属性,如下所示:

-Dapp_home=/home/admin/server
使用

${sys:app_home}

相关内容

  • 没有找到相关文章

最新更新