Próbuję użyć SLF4J (z log4j
wiązaniem) po raz pierwszy.
Chciałbym skonfigurować 3 różne nazwane Loggery, które mogą zostać zwrócone przez LoggerFactory, który będzie rejestrował różne poziomy i przekazywał wiadomości do różnych programów dołączających:
- Logger 1 „FileLogger” rejestruje DEBUG i dołącza do
DailyRollingFileAppender
- Logger 2 „TracingLogger” rejestruje TRACE + i dołącza do
JmsAppender
- Logger 3 „ErrorLogger” rejestruje BŁĄD + i dołącza do innego
JmsAppender
Ponadto chcę je skonfigurować programowo (w Javie, w przeciwieństwie do XML lub log4j.properties
pliku).
Wyobrażam sobie, że normalnie zdefiniowałbym je Logger
gdzieś w kodzie ładującym, jak init()
metoda. Ponieważ jednak chcę korzystać slf4j-log4j
, nie jestem pewien, gdzie mogę zdefiniować programy rejestrujące i udostępnić je ścieżce klasy.
Nie wierzę, że jest to naruszenie podstawowego celu SLF4J (jako fasady), ponieważ mój kod korzystający z interfejsu API SLF4J nigdy nie będzie wiedział, że te programy rejestrujące istnieją. Mój kod wykonuje zwykłe wywołania do interfejsu API SLF4J, który następnie przekazuje je do rejestratorów log4j, które znajdzie na ścieżce klasy.
Ale jak skonfigurować te log4j Loggery na ścieżce klas ... w Javie ?!