Я пытаюсь использовать SLF4J (с log4j
привязкой) в первый раз.
Я хотел бы настроить 3 разных именованных регистратора, которые могут быть возвращены LoggerFactory, который будет регистрировать разные уровни и отправлять сообщения разным приложениям:
- Logger 1 "FileLogger" регистрирует отладку и добавляет к
DailyRollingFileAppender
- Logger 2 "TracingLogger" регистрирует TRACE + и добавляет к
JmsAppender
- Logger 3 «ErrorLogger» регистрирует ОШИБКУ + и добавляет к другому
JmsAppender
Кроме того, я хочу, чтобы они были настроены программно (в Java, в отличие от XML или log4j.properties
файла).
Я предполагаю, что обычно я определяю их Logger
где-то в некотором загрузочном коде, например, в init()
методе. Однако из-за того, что я хочу использовать slf4j-log4j
, я не понимаю, где я могу определить регистраторы и сделать их доступными для пути к классам.
Я не верю, что это является нарушением основной цели SLF4J (как фасад), потому что мой код, использующий API SLF4J, никогда не узнает о существовании этих регистраторов. Мой код просто выполняет обычные вызовы API SLF4J, который затем перенаправляет их в Log4j Loggers, которые он находит на пути к классам.
Но как мне настроить эти log4j Logger на пути к классам ... в Java ?!