当前位置: 首页 > 面试题库 >

如何在log4j的配置文件中为文件追加程序提供环境变量路径

姜乐语
2023-03-14
问题内容

我有一个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



 类似资料:
  • 到目前为止,我一直在中设置以下环境变量: 这设置了我的活动spring配置文件。但是现在,我希望将本地概要文件添加到中定义的其他概要文件中,而不是替换它们。

  • 我正在Eclipse中使用Spring Boot应用程序(maven项目)。当我运行maven项目的test clean target时,我希望加载活动概要文件 我已经在application.properties和application-test.properties中添加了属性spring.profiles.active=test,aop,这没有任何影响。

  • 假设我有. env文件包含如下行: 不像普通的文件有< code>export前缀,所以我不能直接获取文件。 创建从. env文件加载内容并将其设置为环境变量的外壳脚本的最简单方法是什么?

  • 出于某种原因,我不得不使用环境变量,而不是将系统属性传递给mvn命令。所以,我使用${env。PROFILE}作为属性名,pom.xml中的配置文件设置显示如下: 然后,我尝试激活配置文件到在线,但我失败了,命令行显示如下: 然后打开maven调试模式(-X),属性如下所示: 我们可以在上述属性列表中找到属性: “PROFILE”变量似乎是在envrionment中设置的。但是,“在线”配置文件未

  • 当我用它以以下错误停止: 我不是舒尔,但似乎。env文件不支持变量的使用。

  • 问题内容: 我在 根文件夹 文件中有.env 文件 并将文件放在文件夹中。文件的第一行是 我还尝试了以下操作: ; ; 但是,当我从 命令提示符* 运行文件时,不会加载我的env变量 * 如果我使用 Visual Studio 并按 F5 ,它将加载! 我不确定我在做什么错,我想念什么。任何建议都非常感谢。谢谢。 问题答案: 使用如何? 您的问题似乎是执行路径。