Estou tentando usar SLF4J (com log4j
ligação) pela primeira vez.
Gostaria de configurar três loggers nomeados diferentes que podem ser retornados por um LoggerFactory que registrará níveis diferentes e enviará as mensagens para diferentes anexos:
- Registrador 1 "FileLogger" registra DEBUG e anexa a
DailyRollingFileAppender
- O registrador 2 "TracingLogger" registra TRACE + e anexa a um
JmsAppender
- O registrador 3 "ErrorLogger" registra o erro + e anexa a um
JmsAppender
Além disso, eu quero que eles sejam configurados programaticamente (em Java, em vez de XML ou um log4j.properties
arquivo).
Eu imagino que, normalmente, eu definiria esses Logger
s em algum lugar de algum código de inicialização, como um init()
método. No entanto, como quero usar slf4j-log4j
, estou confuso sobre onde eu poderia definir os criadores de logs e disponibilizá-los para o caminho de classe.
Não acredito que isso seja uma violação do objetivo subjacente do SLF4J (como fachada), porque meu código usando a API do SLF4J nunca saberá que esses registradores existem. Meu código apenas faz chamadas normais para a API SLF4J, que as encaminha para os log4j Loggers que encontra no caminho de classe.
Mas como faço para configurar esses log4j Loggers no caminho de classe ... em Java ?!