Есть ли причины использовать XML файлы свойств для конфигурации Log4J?
Зачем выбирать XML файлы свойств для конфигурации Log4J?
Ответ 1
Там интересная дискуссия о достоинствах обоих в этом блоге. Ниже приведена цитата из этого блога:
Свойства могут быть определены файлом свойств или файлом XML. Log4j ищет файл с именем log4j.xml, а затем для файла с именем log4j.properties. Оба должны быть помещены в папку src.
Файл свойства менее подробный, чем файл XML. XML требует, чтобы log4j.dtd был помещен в исходную папку. XML требует dom4j.jar, который не может быть включен в старые версии Java.
Файл свойств не поддерживает некоторые дополнительные параметры конфигурации, такие как фильтры, пользовательские ErrorHandlers и специальный тип добавок, то есть AsyncAppender. ErrorHandlers определяет, как обрабатываются ошибки в log4j, например плохо настроенные приложения. Фильтры более интересны. Из доступных фильтров я считаю, что фильтр свойств уровня действительно отсутствует для файлов свойств.
Этот фильтр позволяет определить, что [n] appender должен получать сообщения журнала с уровня INFO до WARN. Это позволяет разделить лог-сообщения на разные лог файлы. Один для сообщений DEBUGGING, другой для предупреждений,...
Свойство appender поддерживает только минимальный уровень. Если вы установите его в INFO, вы также получите сообщения WARN, ERROR и FATAL.
Чтобы ответить на комментарии по моему первоначальному ответу: курсив мой. Для целей учебника автор решил замалчивать или непреднамеренно пропустить, что свойства или xml должны быть только в пути к классам, а не в папке src. Простой способ добавить их в путь к классам состоит в том, чтобы добавить их в папку src, поэтому в целях учебника, который явно считался достаточным.
Ничто из этого не имеет прямого отношения к заданному вопросу или намерению ответа, а именно обсуждению достоинств или иным образом использования xml файлов для настройки log4j. Я считаю, что остальная часть цитаты актуальна и полезна тем, кто хочет сделать осознанный выбор.
Ответ 2
log4j постепенно переходит в XML, поэтому свойства являются устаревшим форматом.
Некоторые новые функции могут быть настроены только в XML. Я был вынужден переключиться на XMl, потому что мне нужно использовать TimeBasedRollingPolicy.
Однако XML настолько подробен. Я все еще использую свойства, когда могу.
Ответ 3
Ну, одна вещь, которую вы можете сделать только в xml-конфигурации, - это настроить регистратор для использования буферизации (используя org.apache.log4j.AsyncAppender).
Однако, если вам требуется больше функциональных возможностей, вам также может понадобиться просмотр журнала, который содержит ряд других улучшений по сравнению с log4j.
Ответ 4
Perf4j (http://perf4j.codehaus.org) - очень хорошая система мониторинга производительности, которая настроена рядом с log4j и работает совместно с ней и требует файлы log4j.xml.
Итак, если вы планируете использовать perf4j (я бы рекомендовал), тогда требуется XML-формат.