Почему предпочел XML файлам свойств для конфигурации Log4J?

От Geekpedia:

// Store integer 182
int decValue = 182;

// Convert integer 182 as a hex in a string variable
string hexValue = decValue.ToString("X");

// Convert the hex string back to the number
int decAgain = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);

41
задан otto.poellath 10 August 2009 в 19:46
поделиться

4 ответа

В этом блоге есть интересное обсуждение достоинств обоих. В следующем разделе - цитата из этого блога:

Свойства могут быть определены файлом свойств или файлом XML. Log4j ищет файл с именем log4j.xml, а затем файл с именем log4j.properties. Оба должны быть помещены в папку src .

Файл свойств менее подробный, чем файл XML. XML требует, чтобы файл log4j.dtd также был помещен в исходную папку. Для XML требуется файл dom4j.jar, который может не входить в старые версии Java.

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

Этот фильтр позволяет определить, что [n] приложение должно получать сообщения журнала от уровня INFO до WARN. Это позволяет разделить сообщения журнала по разным файлам журнала. Один для сообщений DEBUGGING, другой для предупреждений, ...

Приложение свойств поддерживает только минимальный уровень. Если вы установите его на INFO, вы также будете получать сообщения WARN, ERROR и FATAL.


Чтобы ответить на комментарии к моему первоначальному ответу: Курсив выделен мной. Для целей учебника автор решил замазать или непреднамеренно опустить, что свойства или xml должны находиться только в пути к классам, а не в папке src. Простой способ добавить их в путь к классам - добавить их в папку src, так что для целей учебника это было очевидно сочтено достаточным.

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

40
ответ дан 27 November 2019 в 00:49
поделиться

log4j постепенно переходит на XML, поэтому свойства являются устаревшим форматом.

Некоторые новые функции можно настроить только в XML. Мне пришлось переключиться на XMl, потому что мне нужно использовать TimeBasedRollingPolicy.

Однако XML очень многословен. Я по-прежнему использую свойства, когда могу.

9
ответ дан 27 November 2019 в 00:49
поделиться

Что ж, единственное, что вы можете сделать только в конфигурации xml, - это настроить регистратор для использования буферизации (с использованием org.apache.log4j.AsyncAppender).

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

3
ответ дан 27 November 2019 в 00:49
поделиться

Perf4j ( http://perf4j.codehaus.org ) - очень хорошая система мониторинга производительности, которая настраивается вместе с log4j и работает вместе с ним, и требует log4j .xml файлы.
Итак, если вы планируете использовать perf4j (я бы рекомендовал), тогда потребуется формат xml.

3
ответ дан 27 November 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: