2012-06-23 6 views
2

У меня возникли большие проблемы с получением log4j для работы с моим маленьким проектом maven. Запуск программы в Eclipse не дает ошибок, и журнал работает отлично. Однако, когда я упаковать проект в банке, я получаю следующее предупреждение:log4j.properties не найден в упакованном банке maven

log4j:WARN No appenders could be found for logger (org.openrdf.sail.memory.MemoryStore). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

Файл log4j.properties упакован в мою банку и он находится в SRC/основные/ресурсов для реализации проекта. Я прочитал сообщение this и конфигурационную часть сайта log4j, но не могу понять это. Я загрузил свой POM here. Я благодарен за любой намек, который может помочь мне с моей проблемой.

+0

Вы проверили содержимое своей банки, если оно содержит файл log4j.property? – khmarbaise

+0

Пожалуйста, покажите нам структуру каталогов ваших источников, структуру каталогов в банке и pom.xml. – carlspring

ответ

1

Добавить <resource> tag под тегом <build></build>. Выполняя это, мы говорим, что он берет ресурсы из указанного пути, если он не используется по умолчанию.

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
    </resource> 
</resources>  
+0

Я не согласен. Это местоположение по умолчанию, из которого Maven будет пытаться копировать ресурсы (если каталог существует), даже если вы его не указали. Определение этого не является обязательным, если только вам не нужно использовать несколько мест для своих ресурсов. Обычно вы можете пропустить это. Это также верно для ''. – carlspring

1

Как говорит предупреждающее сообщение, он не может найти Appender для регистратора org.openrdf.sail.memory.MemoryStore. Итак, убедитесь, что у вас действительно есть файл log4j.properties в src/main/resources, а затем убедитесь, что он упакован в jar, как вы полагаете. Может быть, по какой-то причине я действительно не вижу, это не упакован. Вы знаете, иногда бывает такое дерьмо ... Если у вас такой файл в jar, убедитесь, что в конце вы сконфигурировали appender, который обрабатывает регистратор org.openrdf.sail.memory.MemoryStore.

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

0

Вы, кажется, собираете свою банку с ее зависимостями. Это может вызвать проблемы, если эти банки также содержат log4j.properties, и они были подняты во время перегрузки. Таким образом, он не может найти регистратор для класса org.openrdf.sail.memory.MemoryStore.

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

0

обратите внимание, что log4j.properties является чувствительным к случаю;

Смежные вопросы