Чтение внешнего файла конфигурации xml log4j2, если он не существует, то чтение внутреннего при весенней загрузке - PullRequest
0 голосов
/ 18 июня 2020

У меня есть приложение для весенней загрузки, которое использует log4j2, и у него есть файл конфигурации XML в папке ресурсов.

Но идея в том, что сначала приложение ищет файл конфигурации вне войны, и если он не существует, тогда возьмите тот из папки ресурсов.

Возможно ли добиться такого поведения?

ОБНОВЛЕНИЕ: Я добавляю больше деталей в свой запрос !! У меня есть конкретный случай c: у меня следующая среда: Spring boot (2.2.4) Java 1.8 log4j2 О Linux (CentOS)

Файл application.properties (находится в папке ресурсов) со свойством "logging.config", указывающим на внешний файл log4j2. xml (вне WAR).

Примерно так:

ведение журнала. config = $ {DIR_PROP} /APP_NAME/config/appName_log4j2.xml

Внутри, в папке ресурсов, у меня также есть тот же файл, так как в моих тестах Spring не запускался, если бы я нет его. Интересно то, что после перехода на внутренний * log4j2. xml он переходит на внешний благодаря свойству logging.config.

Задача противоположная, сначала попробуйте внешний файл, если он не go во внутренний (папку ресурсов).

1 Ответ

0 голосов
/ 18 июня 2020

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

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

Рассматривали ли вы использование Spring Cloud Configuration? Вы можете настроить Spring Cloud Configuration так, чтобы он искал файл конфигурации в различных каталогах, что позволяет вам иметь файл c с указанием приложения и значение по умолчанию. Log4j также поддерживает составные конфигурации с Spring Cloud Config, где вы можете иметь общую конфигурацию вместе с конфигурацией c, определяемой приложением, которая переопределяет общую конфигурацию. Если это вас интересует, посмотрите Spring Cloud Config Client .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...