Игнорировать log4j2.properties из jar зависимостей - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть проект Maven, который работает правильно. Я использую файл log4j2.xml для настройки ведения журнала. До сегодняшнего дня все работало нормально. Но теперь я включил зависимость стороннего jar, который имеет свой собственный файл log4j2.properties. К сожалению, это перезаписывает мою собственную конфигурацию.

Есть ли способ игнорировать, исключать ... этот файл свойств?

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

На самом деле, другие ответы неверны, так как они советуют вам использовать системное свойство, которое использует log4j 1.x, а не то, что использует Log4j 2.

Для Log4j 2 вы хотите использовать -Dlog4j2.configurationFile=/path/to/log4j2.xml. Если вы укажете только -Dlog4j2.configurationFile=log4j2.xml, Log4j будет искать этот файл в пути к классам. Очевидно, что имя может быть чем угодно. Log4j также поддерживает помещение системных свойств в файл с именем log4j2.component.properties, поэтому, если вы не хотите указывать их в командной строке, вы можете включить их в файл Java Properties с таким именем в вашем приложении.

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

0 голосов
/ 13 февраля 2020

Вы можете добавить опцию, чтобы указать свой собственный файл свойств log4j с

-Dlog4j.configuration=path/to/my.properties, и это лучше, чем исключать каждый раз, когда новая библиотека пытается переопределить ваш файл свойств.

...