Файл свойств Log4J не найден - PullRequest
2 голосов
/ 30 мая 2011

У меня есть проект Java, который был добавлен в путь сборки Java веб-проекта.

В первом проекте Java я добавил файл JAR Log4J в путь сборки Java, и поскольку этот проект был добавлен вВ Java Build Project веб-проекта JAR-файл также автоматически добавлялся в Java-путь компоновки веб-проекта.

В веб-проекте у меня есть веб-служба, которая создает экземпляр класса Java-проекта.Этот класс имеет простой Logger, и он работает правильно.

Теперь я пытаюсь создать файл свойств с именем log4j.properties для настройки Logger, Appender и LayoutPattern.

Всякий раз, когда я пытаюсьдля вызова метода экземпляра класса я получаю эту ошибку на консоли:

log4j: ОШИБКА Не удалось прочитать файл конфигурации [log4j.properties].

Что такоеЯ делаю не так?

Вот файл свойств log4j:

log4j.rootLogger=DEBUG, CA

log4j.appender.CA=org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Извините, но это была ложная тревога ...

Как я уже сказал, проектгде класс, который создает экземпляр регистратора, добавляется как зависимость основного проекта, в котором определены веб-службы.

В результате этот проект публикуется в файле JAR и с предложенным решением, о котором я упоминал:

PropertyConfigurator.configure (getClass (). GetProtectionDomain (). GetCodeSource (). GetLocation (). GetPath () + "log4j.properties");

Я получаю путь, подобный:

C: /project_path.jar/log4j.properties.

Очевидно, что соответствующие файлы все еще не найдены ...

Извините ... Все еще работаем над решением

Ответы [ 4 ]

4 голосов
/ 13 марта 2015

Если вы используете log4j 2.x, вам нужен файл с именем log4j2.xml.

log4j.properties не сделает этого.

3 голосов
/ 30 мая 2011

Поместите файл log4j.properties в каталог classes, если используете распакованный WAR, иначе поместите его в папку src (корневая папка для ваших классов Java).

1 голос
/ 01 июня 2011

Хорошо, иногда очевидный ответ - тот, который вы меньше всего ожидаете.

Как оказалось, мне просто нужно было удалить строку PropertyConfigurator.configure (xxx) и поместить файл log4j.properties в папку srcпроекта зависимости.

Спасибо

1 голос
/ 30 мая 2011

Единственный способ, который я нашел для решения этой проблемы, - это поместить файл log4j.properties в корневую папку src.

Затем в классе, который создает журнал, следующая строка:

PropertyConfigurator.configure ("log4j.properties")

... пришлось изменить на:

PropertyConfigurator.configure (getClass (). getProtectionDomain (). getCodeSource (). getLocation() .getPath () + "log4j.properties");

И, наконец, файл найден.

Спасибо за понимание Pål

...