Где разместить log4j.xml

Как мы можем указать, должен ли log4j искать при попытке найти свой файл конфигурации xml?

Похоже, что по умолчанию log4j смотрит в корень папки classа, я могу сказать, что с помощью функции debug log4j и запуска моего приложения из среды IDE.

Тем не менее, у меня больше нет папки classов в моем банке. Файл log4j.xml находится в корневом банке.

Я уже пытался установить параметр -Dlog4j.configuration = log4j.xml, но он не работает.

Вот глобальная структура моего приложения на данный момент:

  • ком
  • Lib
  • мета-инф
  • log4j.xml

Он находит log4j.xml с помощью CLASSPATH. Если log4j не находит файл конфигурации, он отправит сообщение об ошибке в консоль. Если вы не видите такой ошибки, то вполне вероятно, что она находит файл конфигурации, который может не быть тем, который вы редактируете. Существует опция командной строки, которая вынуждает Log4J сообщать путь к файлу конфигурации, который он использует.

С http://wiki.apache.org/logging-log4j/Log4jConfigurationHelp

Если вы запустите с «-Dlog4j.debug», тогда log4j выведет информацию на стандартный вывод, рассказывая, как он пытается настроить себя. Просматривая это, вы узнаете, где он ищет файл конфигурации.

Предположим, что ваша конфигурация log4j находится за пределами исходного дерева. Если он не может найти ваш файл конфигурации, помогите ему:

-Dlog4j.configuration=file:///your/path/log4j.xml 

Обратите внимание на файл квалификатора : /// . Без него это не сработает.

У меня нет никакой ошибки

Таким образом, log4j находит вашу конфигурацию, иначе вы получите:

log4j: WARN Для регистратора () не найдено никаких добавлений.
log4j: WARN Пожалуйста, правильно инициализируйте систему log4j.

Также:

Журнал просто распечатывается на консоли

Это означает, что вам, вероятно, необходимо определить файл-приложение, например FileAppender или RollingFileAppender . В разделе «Конфигурация» короткого ввода есть несколько примеров.

Вы можете использовать:

 DOMConfigurator.configure(log4jConfigurationFilename); 

и укажите местоположение, если оно не является корнем!

Не беспокойтесь о том, куда его поместить. Просто запустите свой проект, скажем, в eclipse, log4j выкинет исключение, сообщив вам, где он выглядит. Тогда вы можете положить его туда.

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

  • Динамическое изменение уровня журнала log4j
  • Поддержка log4j в Android
  • Как настроить log4j только для хранения файлов журнала за последние семь дней?
  • Перенаправить System.out и System.err в slf4j
  • Создание консольного приложения log4j использует разные цвета для разных streamов
  • Использование log4j с JBoss 7.1
  • Log4j: Как настроить простейшее возможное ведение журнала файлов?
  • Как вы очищаете буферный файл log4j FileAppender?
  • Как настроить log4j2 RollingFileAppender?
  • Log4j Предупреждение при инициализации?
  • Java Logging vs Log4J
  • Interesting Posts

    Каковы различия между «String» и «str» Rust?

    Включение RDP или установка VNC-сервера в Windows 7 из командной строки

    Обновление BIOS в DOS

    Как масштабировать UIImageView пропорционально?

    Является ли type-punning через объединение неуказанным в C99, и стало ли это указано в C11?

    Почему апплеты устарели в JDK 9?

    Справочник службы WCF генерирует свой собственный контрактный интерфейс, не будет повторно использовать мои

    Почему такая плохая идея анализировать XML с помощью регулярного выражения?

    Как реализовать has_many: через отношения с Mongoid и mongodb?

    PDFBox: проблема с преобразованием страницы PDF в изображение

    Объединить несколько дочерних строк в одну строку MYSQL

    Папка «Мои документы» для нового местоположения в Windows 7

    Как удалить ведущие нули из буквенно-цифрового текста?

    Как отменить MD5, чтобы получить исходную строку?

    Как реализовать приоритезацию задач с помощью ExecutorService в Java 5?

    Давайте будем гением компьютера.