То, как может мы указывать, был log4j, должно посмотреть на при попытке найти его файл настройки XML?
Кажется, что по умолчанию, log4j изучает корень папки класса, я могу сказать что с помощью отладки log4j функциональность и запустив мое приложение от IDE.
Однако у меня нет папки класса в моей банке больше. И файл log4j.xml в корне банки.
Я уже попытался установить опцию -Dlog4j.configuration=log4j.xml, но она не работает.
Вот глобальная структура моего приложения в данный момент:
Он находит файл log4j.xml с помощью CLASSPATH. Если log4j не найдет ни одного файла конфигурации, он отправит ошибку на консоль. Если вы не видите такой ошибки, вероятно, он находит файл конфигурации, который может быть не тем, который вы редактируете. Существует опция командной строки, чтобы заставить Log4J сообщать путь к используемому конфигурационному файлу.
Из http://wiki.apache.org/logging-log4j/Log4jConfigurationHelp
Если вы запустите "-Dlog4j.debug", то log4j распечатает информацию в стандартном формате {{ 1}} вывод, рассказывающий, как он пытается настроить себя. Просматривая этот , вы узнаете, где он ищет файл конфигурации.
У меня нет никакой ошибки
Значит, log4j находит вашу конфигурацию, иначе вы бы получили:
log4j:WARN No appenders could be found for logger ().
log4j:WARN Пожалуйста, инициализируйте систему log4j должным образом.
Также:
Лог просто выводится на консоль
Это означает, что вам, вероятно, нужно определить файловый аппендер, например FileAppender или RollingFileAppender. В разделе "Конфигурация" на кратком вступлении есть несколько примеров.