log4j.properties не получены из банки - PullRequest
8 голосов
/ 23 марта 2011

У меня есть jar в classpath моего сервера, который содержит файл log4j.properties в корне jar для регистрации кода. Когда код в банке выполняется, регистрация для кода не происходит. Когда я проанализировал проблему с помощью опции java -Dlog4j.debug , я узнал, что log4j загружает файл log4j.properties axis-ant.jar (это также на моем classpath) и используя его вместо файла свойств моего фляги.

Когда я впоследствии удалил файл axis-ant.jar из пути к классам, мой файл jars log4j.properties был немедленно выбран, и произошла регистрация моего кода.

Может кто-нибудь объяснить, почему мои log4j.properties не загружаются при наличии axis-ant.jar?

Удивительно, но тот же jar-файл с axis-ant.jar, присутствующим в classpath, работает с правильным ведением журнала на другом сервере. На сервере установлены одинаковая версия java 5 и одна и та же версия log4j jar

Ответы [ 4 ]

9 голосов
/ 23 марта 2011

Обратите внимание на руководство log4j .Раздел «Процедура инициализации по умолчанию» описывает, как log4j попытается найти файл инициализации, и объясняет возможности соответствия специальной конфигурации (например, путем установки системного свойства log4j.configuration).

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

1 голос
/ 23 марта 2011

Файл свойств выбирается из банки в зависимости от порядка, в котором файл найден в classpath вашим сервером приложений.Теперь нет способа окончательно указать банку, из которой должен быть загружен файл свойств.

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

0 голосов
/ 23 марта 2011

Возможно, потому что axis-ant.jar находится в classpath перед вашим собственным jar. Я полагаю, что если вы поместите ваш jar в classpath, то axis-ant.jar должен помочь

0 голосов
/ 23 марта 2011

Замечу, но уверен, что это может быть проблемой с заказом. Какой бы файл log4j.properties загружался первым / последним, он выиграл (я должен был это проверить).

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