Расположение файла конфигурации Log4j2, динамически устанавливаемое во время выполнения - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь настроить Log4j2 на выбор местоположения файла конфигурации из файла свойств за пределами развернутого .war. Мне нужно указать расположение файла внешнего свойства во время выполнения, поэтому я передаю следующий аргумент -D моему Tomcat:

-Dapplication.home=file:///C:/dev/env1-home

У меня есть файл application.properties в каталоге env1-home, указанном вышеи различные свойства улавливаются пружинным контейнером и используются на протяжении всего применения. Одним из свойств является:

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)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...