在 log4j xml 配置中使用系统环境变量
2022-08-31 20:11:13
是否可以在 log4j xml 配置文件中引用系统环境变量(而不是 Java 系统属性)?
我希望能够做这样的事情:
<level value="${env.LOG_LEVEL}" />
并让它从系统环境变量中获取,这样我就可以避免使用-D参数传入这么多东西。
是否可以在 log4j xml 配置文件中引用系统环境变量(而不是 Java 系统属性)?
我希望能够做这样的事情:
<level value="${env.LOG_LEVEL}" />
并让它从系统环境变量中获取,这样我就可以避免使用-D参数传入这么多东西。
我最近试图这样做,但无法让它工作。我最终做的是在启动时发送一个变量。假设您有一个名为 $LOG_LEVEL 的环境变量:
<level value="${log_level}" />
在启动时...
java -Dlog_level=$LOG_LEVEL your_app
此语法仅记录在 log4j 2.X 中,因此请确保使用正确的版本。它不适用于 1.X 版本。
<Appenders>
<File name="file" fileName="${env:LOG_PATH}">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m %ex%n</Pattern>
</PatternLayout>
</File>
</Appenders>