我有一个 log4j.xml
配置文件。和一个 RollingFileAppender
我需要提供用于存储日志的文件路径。问题是我的代码将作为可运行的 jar 部署在 Unix 机器上。所以如果我传递这样的参数:
value=logs/messages.log"
它在我的 HOME 目录中创建名为 logs 的文件夹,并将所有消息写入此目录中的文件。
我将环境变量设置为某个值。我想使用该变量的路径并在该路径下写入消息。我怎样才能实现它?
我试过用这个:
value="${MY_HOME}/logs/message.log"
但这不起作用。任何人都可以提出解决这个问题的方法吗?
最佳答案
解析其配置文件时,表达式${MY_HOME}
将扩展为名为MY_HOME
的系统属性的值,而不是系统环境变量。两者是有区别的。
要以简洁的方式实现这一点,您必须在 JVM 调用行中添加类似这样的内容:
-DMY_HOME=$MY_HOME
这将定义 Java 系统属性 MY_HOME
以包含环境变量 MY_HOME
的值。
关于java - 如何在 log4j 的配置文件中为文件附加程序提供环境变量路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066042/