Файл конфигурации Log4j2 в проекте Java EE - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть простая Maven Java-EE на основе Jersey веб-службы в моем Eclipse, которая работает в Windows 10. Проект создан из jersey-quickstart-webapp артефакта.Я пытаюсь использовать Log4j logger, но не могу найти, где разместить log4j2.xml файл.Я пытался поместить его вместе с исходным кодом Java-файлов, но регистратор жалуется на файл конфигурации не найден.Как правильно хранить файл конфигурации?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Поместите его в каталог ресурсов.Обычно все конфигурационные файлы хранятся там.

0 голосов
/ 23 февраля 2019

Согласно документам , Log4j2 будет искать файл конфигурации в следующих порядках:

  1. Log4j будет проверять системное свойство "log4j.configurationFile" и,если установлено, попытается загрузить конфигурацию, используя ConfigurationFactory, который соответствует расширению файла.
  2. Если не установлено системное свойство, ConfigurationFactory будет искать log4j2-test.properties в classpath.
  3. Если такой файл не найден, Конфигурация YAML будет искать log4j2-test.yaml или log4j2-test.yml в пути к классам.
  4. Если такой файл не найден, JSON ConfigurationFactory будет искать log4j2-test.json или log4j2-test.jsn в пути к классам.
  5. Если такой файл не найден, XML ConfigurationFactory будет искать файл log4j2-test.xml в пути к классам.
  6. Если файл теста не может бытьРасположенный в свойствах, ConfigurationFactory будет искать log4j2.properties в пути к классам.
  7. Если файл свойств не можетБудучи расположенным, YAML ConfigurationFactory будет искать log4j2.yaml или log4j2.yml в пути к классам.
  8. Если не удается найти файл YAML, JSON ConfigurationFactory будет искать log4j2.json или log4j2.jsn в пути к классам.
  9. Если файл JSON не может быть найден, XML ConfigurationFactory попытается найти log4j2.xml в пути к классам.
  10. Если файл конфигурации не найден, будет использоваться DefaultConfiguration.Это приведет к тому, что выходные данные журнала перейдут на консоль.

Таким образом, вы можете видеть, что кроме (1), все ищут файл конфигурации из classpath.В стандартном проекте Maven /src/main/resources является корнем пути к классам. Так что вы можете поместить log4j2.xml в /src/main/resources.

В противном случае вы должны явно указать файл конфигурации с помощью log4j.configurationFile системного свойства:

-Dlog4j.configurationFile=path/to/log4j2.xml
...