Программная настройка логгеров Log4j

Я пытаюсь использовать SLF4J (с привязкой log4j ) в первый раз .

Я хотел бы настроить 3 разных именованных регистратора, которые могут быть возвращены LoggerFactory, который будет регистрировать разные уровни и отправлять сообщения в разные приложения:

  • Регистратор 1 «FileLogger» регистрирует DEBUG и присоединяется к DailyRollingFileAppender
  • Logger 2 «TracingLogger» регистрирует TRACE + и присоединяется к JmsAppender
  • Logger 3 «ErrorLogger» регистрирует ERROR + и присоединяется к другому JmsAppender

Кроме того, я хочу, чтобы они были настроены программно (в Java, как в отличие от XML или файла log4j.properties ).

Я полагаю, что обычно я определяю эти Logger где-нибудь в некотором коде начальной загрузки, например, в методе init () . Однако, поскольку я хочу использовать slf4j-log4j , я не понимаю, где я могу определить регистраторы и сделать их доступными для пути к классам.

Я не верю, что это нарушение основной цели SLF4J (как фасад), потому что мой код, использующий SLF4J API, никогда не узнает, что эти регистраторы существуют. Мой код просто выполняет обычные вызовы API SLF4J, который затем перенаправляет их в регистраторы log4j, которые он находит в пути к классам.

Но как мне настроить эти регистраторы log4j в пути к классам ...на Яве ?!

183
задан ROMANIA_engineer 21 October 2014 в 23:29
поделиться