Spring 在运行时动态设置Log4j2配置文件位置
我正在尝试配置Log4j2,以便从deployed.war外部的属性文件中获取配置文件位置。我需要在运行时设置外部属性文件的位置,以便将以下-D参数传递给Tomcat:Spring 在运行时动态设置Log4j2配置文件位置,spring,properties,configuration,runtime,log4j2,Spring,Properties,Configuration,Runtime,Log4j2,我正在尝试配置Log4j2,以便从deployed.war外部的属性文件中获取配置文件位置。我需要在运行时设置外部属性文件的位置,以便将以下-D参数传递给Tomcat: -Dapplication.home=file:///C:/dev/env1-home 我在上面列出的env1主目录中有一个application.properties文件,spring容器将获取各种属性并在整个应用程序中使用。其中一个属性是: application.log4j.config=C:/dev/env1-home
-Dapplication.home=file:///C:/dev/env1-home
我在上面列出的env1主目录中有一个application.properties文件,spring容器将获取各种属性并在整个应用程序中使用。其中一个属性是:
application.log4j.config=C:/dev/env1-home/log4j2.xml
我希望将该应用程序文件属性提供给web.xml中的上下文参数,但web.xml中的值如下:
<context-param>
<param-name>log4jConfiguration</param-name>
<param-value>$${sys:application.log4j.config}</param-value>
</context-param>
ERROR StatusLogger Unable to access file:/C:/dev/Tomcat/apache-tomcat-8.5.31-8090/bin/$%7Bsys:application.log4j.config%7D
java.io.FileNotFoundException: C:\dev\Tomcat\apache-tomcat-8.5.31-8090\bin\${sys:application.log4j.config} (The system cannot find the file specified)
...