Websphere Liberty: Как указать расположение конфигурации log4j2? - PullRequest
2 голосов
/ 26 апреля 2019

Я пытаюсь сообщить Websphere Liberty, где находится мой файл log4j2.xml, но он не работает.

В моем файле jvm.options Я настраиваю:

-Dlog4j.configurationFile=file:///${server.config.dir}/log4j2.xml

но похоже, что Liberty не понимает переменную $ {server.config.dir} в файле jvm.options. Файл находится в том же каталоге, что и файл server.xml.

Как мне указать местоположение log4j2.xml для Liberty?

Ответы [ 3 ]

1 голос
/ 26 апреля 2019

Переменная ${server.config.dir} является одной из переменных конфигурации встроенного сервера Liberty, они применяются только в файле server.xml (и включенных конфигурациях).

При запуске сервера Liberty, user.dir устанавливается так же, как ${server.config.dir}, поэтому вы можете просто указать относительный путь к файлу log4j2.xml в jvm.options как:

-Dlog4j.configurationFile=log4j2.xml
1 голос
/ 26 апреля 2019

Существует несколько способов настройки log4j в WebSphere. Помимо метода записей библиотеки, упомянутого псевдоним , вы можете просто перетащить файл конфигурации log4j2 в каталог глобальной библиотеки по адресу

WLP / USR / сервера // Библиотека / глобальная

Если во время запуска приложения в указанном выше месте находятся файлы, и у этого приложения не настроен элемент загрузчика классов, приложение использует эти библиотеки. Если присутствует конфигурация загрузчика классов, эти библиотеки не используются, если на глобальную библиотеку явно не ссылаются.

Более подробную информацию о глобальных библиотеках можно найти по этой ссылке

Общие библиотеки WebSphere Liberty

1 голос
/ 26 апреля 2019

Я думаю, что это возможно сделать, создав запись библиотеки в вашем server.xml, например:

<library id="log4jLib">
   <folder dir="/opt/log4j2/config"/>
</library>

, где указанный каталог содержит свойства log4j2 или xml-файл.

Затем укажите загрузчик классов для вашего приложения, например:

<application id="test" name="test" type="ear" location="test.ear">
  <classloader commonLibraryRef="log4jLib" />
</application>
...