У вас есть 3 варианта:
Теперь давайте посмотрим, как они соответствуют вашим требованиям:
log4j
:
java.util.logging
(JUL) :
LogManager # readConfiguration ()
- Логбэк :
Похоже, вам придется пойти на некоторые уступки (или найти фреймворк, я не знаю). Я бы выбрал Logback , вот где сейчас что-то происходит.
Хотя обычным методом конфигурации для log4j является xml, вы также можете настроить его программно, что означает, что вы можете использовать любую систему конфигурации, какую захотите (а также перенастроить ее во время выполнения).
Вы можете изучить нашу Java инструмент регистрации SmartInspect (коммерческий). SmartInspect активно поддерживается, может быть настроен с помощью двух строк кода и поддерживает файлы конфигурации, которые содержат только пары имя = значение (без XML :)). SmartInspect также может автоматически перезагружать файлы конфигурации на лету при их изменении - полезная функция для оперативных изменений конфигурации и производственных систем. SmartInspect также поставляется с графическим инструментом анализа и мониторинга журналов, который может оказаться полезным:
(источник: gurock.com )
SLF4J , насколько мне известно, является последним и самым лучшим.
Конечно, XML, требуемый для настройки log4j, нельзя считать жестким. Вы можете возражать против конфигурации XML в целом, но даже это меняется. Spring дает возможность использовать XML или аннотации, как и большинство других фреймворков. Я думаю, что возражать против XML в чем-либо, кроме разметки, заходит слишком далеко. Должны ли Ant и NANT отключиться, потому что они выбрали XML? Думаю, нет.