Ich habe eine Web-App auf einem Tomcat 7
Server bereitgestellt. Meine Anwendung verwendet log4j
und file appender
. Es werden jedoch nicht alle Logging-Nachrichten in die Datei geschrieben.
Auf meinem Klassenpfad habe ich:
%Vor% Meine log4j.properties
-Datei funktioniert auf meinem lokalen Rechner einwandfrei und wird ordnungsgemäß bereitgestellt.
Ich sehe Fehlermeldungen von Anwendungen, die in catalina.out
geschrieben werden, die nicht in mein log4j log
geschrieben werden. Die Protokollnachrichten in catalina.out
scheinen von einem anderen Protokollierungsframework zu stammen, da das Ausgabemuster ein anderes Format hat als mein log4j
-Muster. Die Protokollierung, die ich in catalina.log
sehe, ist wie folgt:
Und mein log4j-Muster ist wie folgt:
%Vor% Einige Protokollierungen werden in meinem log4j
-Dateiprotokoll angezeigt, aber nicht alle. Nach dem, was ich gelesen habe, benötigt slf4j
nur diese jars, damit es die Protokollausgabe trichtert. Irgendwelche Ideen?
Versuchen Sie, das jcl-über-slf4j als Abhängigkeit einzubeziehen. myfaces verwendet wahrscheinlich Commons-Logging.
Überprüfen Sie die slf4j-Dokumentation: Ссылка
Es sieht aus wie StateUtils Klasse verwendet java.util.logging (jul). Es liegt nahe, dass andere myfaces-Klassen auch jul verwenden. Daher möchten Sie wahrscheinlich jul-Protokolle durch SLF4J trichterieren. Sehen Sie sich ältere APIs an , insbesondere die jul-to-slf4j
-Brücke.
Informationen zur Verwendung von jul-to-slf4j
finden Sie unter SLF4JBridgeHandler javadocs .
Konfigurieren Sie Ihren Tomcat-Server gemäß den unter Ссылка beschriebenen Schritten . Dieser Blogeintrag beschreibt, wie man java.util.logging durch slf4j ersetzt (indem man log4j hinter der Fassade verwendet).