Ответ 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. Я считаю, что остальная часть цитаты актуальна и полезна тем, кто хочет сделать осознанный выбор.