Ich versuche, DropWizard zu einer Ausgabedatei zu protokollieren. Die Datei wird erstellt, aber nichts geschrieben.
Tatsächlich scheint die Konfiguration in der bereitgestellten .yml-Datei nicht verwendet zu werden.
Ich bekomme beim Start auch die folgenden Warnungen, nicht sicher, ob sie zusammenhängen:
%Vor%Wie kann ich den Dropwizard dazu bringen, die Logging-Konfiguration in dem bereitgestellten Yml abzufragen und wie kann ich herausfinden, woher die aktuelle Konfiguration kommt? Danke.
UPDATE ::
Ich führe DropWizard v0.9.1
aus und meine Protokollierungskonfiguration ist wie folgt:
Dies sieht wie ein typisches SLF4J
Bindungsproblem aus und ist leicht zu lösen. Werfen Sie zunächst einen Blick auf den entsprechenden Abschnitt in der URL, die mit der Warnung versehen ist , um eine Erklärung zu erhalten.:
Die Warnung von SLF4J ist genau das, eine Warnung. Selbst wenn mehrere Bindungen vorhanden sind, wählt SLF4J ein Protokollierungsframework / eine Implementierung aus und bindet sich daran . Die Art und Weise, wie SLF4J eine Bindung auswählt, wird von der JVM festgelegt, und sollte für alle praktischen Zwecke als zufällig betrachtet werden . Ab Version 1.6.6 wird SLF4J die Framework / Implementierungsklasse nennen, an die es tatsächlich gebunden ist. Eingebettete Komponenten wie Bibliotheken oder Frameworks sollten keine Abhängigkeit von einer SLF4J-Bindung erklären, sondern nur von slf4j-api abhängen. Wenn eine Bibliothek eine Kompilierungsabhängigkeit von einer SLF4J-Bindung deklariert, wird diese Bindung dem Endbenutzer auferlegt, was den Zweck von SLF4J negiert. Wenn Sie auf eine eingebettete Komponente stoßen, die eine Kompilierungszeitabhängigkeit von einer beliebigen SLF4J-Bindung deklariert, nehmen Sie sich bitte die Zeit, die Autoren dieser Komponente / Bibliothek zu kontaktieren und bitten Sie sie, ihre Wege zu verbessern >
Da die Auswahl der Bindung zufällig ist, rate ich, dass die project-common
SLF4J
Abhängigkeit gebunden ist und nicht die beabsichtigte von logback-classic
, eine transitive Abhängigkeit von dropwizard
. Sie sollten entweder das in project-common
in Ihrer Maven pom
-Datei ausschließen oder noch besser, wenn Sie Zugriff auf den Code project-common
haben, entfernen Sie es aus der pom
-Datei, wie die verlinkte Webseite vorschlägt (dh "vervollkommne ihre Wege").
Von der Exception glaube ich, dass Sie die beiden verschiedenen Versionen von logback classic im Klassenpfad verwenden, die Konflikte verursachen. Versuchen Sie, das Glas zu finden, das zweimal, aber unterschiedliche Version enthalten ist, und entfernen Sie einen von ihnen. Wenn Sie Maven verwenden, um die Abhängigkeit zu verwalten, schließen Sie das Jar mit dem Tag
aus %Vor%Tags und Links java logback dropwizard