Ich baue eine kleine Java-App und hoffe, Logback für die Protokollierung zu verwenden.Protokollierungs-Framework-Inkompatibilität
Meine App hat eine Abhängigkeit von einem älteren Projekt, das seine Protokollierung bietet über
org.apache.commons | com.springsource.org.apache.commons.logging | 1.1.1
... so mein Plan
org.slf4j | jcl-over-slf4j | 1.5.6
... zu verwenden, war die JCL Anmeldung zu umleiten
org.slf4j | slf4j-api | 1.6.0
... und schließlich zu
ch.qos.logback | logback-classic | 0.9.22
ch.qos.logback | logback-core | 0.9.22
so kann meine App durch loggback über seine slf4j API protokollieren, während der alte Bibliothekscode sich über die Umleitung am selben Ort anmelden kann.
Leider führt dies in
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)
Ich habe versucht, höhere und niedrigere verision Zahlen auf einige dieser Gläser und auch über die API-Dokumentation zu graben und so ... aber ich bin nicht in der Lage zu finden und zu lösen das Problem.
Hilfe, bitte?
Obwohl Logback als das "strategische" Logging-Framework betrachtet wird, habe ich einen gewissen Spielraum, in welchem Logging-Mechanismus ich letztendlich verwende. Ich hoffe jedoch, entweder logback oder log4j zu verwenden, und ich möchte definitiv die Protokollierung des alten Projekts über eine gemeinsame Konfiguration in das, was das "neue" Protokollierungs-Framework ist, einbinden.
Das funktionierte natürlich sofort; vielen Dank! Ich hatte 1.6.1 dieser Gläser nicht verwendet, weil sie nicht verfügbar zu sein schienen. Ich bin sehr verärgert über m2eclipse, die vorgibt, mir alle verfügbaren Versionen zu zeigen, aber auf mysteriöse Weise eine beträchtliche Anzahl von ihnen fallen lässt. –
Nur für das Interesse von irgendjemand anderem folgt: Ich endete mit einem roten Pfeil im Abhängigkeitsgraphen, weil selbst der neueste Logback-Kern auf slf4j-1.6.0 besteht. Es dauerte noch einige Male, bis die roten Pfeile verschwanden, aber jetzt funktioniert es und alle blauen Pfeile. –
Wie genau mache ich das? – user1721803