java – 如何在log4j的配置文件中为文件appender提供环境变量路径

我有一个log4j.xml配置文件。和一个RollingFileAppender,我需要它提供存储日志的文件路径。问题是我的代码将在Unix机器上部署为可运行的jar。所以如果我传递这样的参数:

value=logs/messages.log"

它在我的HOME目录中创建文件夹命名的日志,并将所有消息写入此目录中的文件。

我有一个环境变量设置为一些值。我想使用该变量的路径,并在该路径下写入消息。我该如何实现?

我试过使用这个:

value="${MY_HOME}/logs/message.log"

但这不行。任何人都可以为此问题提出解决方案?

最佳答案
解析其配置文件时,$ {MY_HOME}的表达式将扩展为名为MY_HOME的系统属性的值,而不是系统环境变量。两者之间有区别。

要以干净的方式实现这一点,您必须向JVM调用行添加如下内容:

-DMY_HOME = $ MY_HOME

这将定义Java系统属性MY_HOME以包含环境变量MY_HOME的值。

转载注明原文:java – 如何在log4j的配置文件中为文件appender提供环境变量路径 - 代码日志