log4j2 配置中的用户 JVM 参数
User JVM parameter in log4j2 configuration
我在 log4j2.xml 中定义了一个 RollingFile Appender。
<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
documentation 非常简单。据我了解,它应该像这样工作:
<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}
在您的 Log4j 2 配置中访问它。
我在 log4j2.xml 中定义了一个 RollingFile Appender。
<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
documentation 非常简单。据我了解,它应该像这样工作:
<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}
在您的 Log4j 2 配置中访问它。