Tworzę małą aplikację Java i mam nadzieję, że użyję logback do logowania.
Moja aplikacja jest zależna od starszego projektu, który rejestruje za pośrednictwem
org.apache.commons | com.springsource.org.apache.commons.logging | 1.1.1
... więc moim planem było użycie
org.slf4j | jcl-over-slf4j | 1.5.6
... aby przekierować logowanie JCL do
org.slf4j | slf4j-api | 1.6.0
... i ostatecznie do
ch.qos.logback | logback-classic | 0.9.22
ch.qos.logback | logback-core | 0.9.22
więc moja aplikacja może logować się za pośrednictwem funkcji logowania za pośrednictwem jej interfejsu API slf4j, podczas gdy stary kod biblioteki może zalogować się do tej samej lokalizacji za pomocą przekierowania.
Niestety, to skutkuje
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:141)
Próbowałem wyższych i niższych numerów wersji na niektórych z tych słoików, a także przekopałem się przez dokumentację API i tym podobne ... ale nie mogę znaleźć i rozwiązać problemu.
Prosimy o pomoc?
Chociaż logowanie zwrotne jest uważane za „strategiczne” ramy rejestrowania, mam pewną swobodę wyboru mechanizmu logowania, który ostatecznie wykorzystam. Mam jednak nadzieję, że użyję logback lub log4j i zdecydowanie chcę połączyć logowanie starego projektu z tym, czym się skończy „nowa” struktura logowania, poprzez wspólną konfigurację.