Jedes Mal, wenn ich auf Tomcat catalina.out
Protokolldatei schaue, sehe ich doppelte Zeilen für jeden Protokolleintrag. Warum passiert dies? Ist das schon einmal bei Java (Tomcat) Benutzern passiert?Warum verdoppelt Tomcat meine Protokollzeilen in der catalina.out Logdatei?
Antwort
Das passiert mir, wenn ich 2 Kopien von log4j.properties auf dem Klassenpfad habe. Auf mehrere Protokollierungskonfigurationen prüfen
Ist die log4j.properties Ihrer Webanwendung auf "catalina.out" eingestellt? Tomcat protokolliert bereits Ereignisse dort und wenn sich Ihre Anwendung dort ebenfalls anmeldet, würde das wahrscheinlich die doppelten Einträge erklären.
Es hat höchstwahrscheinlich etwas mit der Reihenfolge, in der die Gläser geladen werden, zu tun. Bei einem älteren Projekt war dies die ganze Zeit, die Lösung bestand darin, die Gläser in der "perfekten" Reihenfolge neu zu ordnen, und die Dinge würden sich selbst regeln.
Es können nicht nur mehrere log4js sein, sondern commons-logging, slf4j usw. Versuchen Sie, sie neu anzuordnen, aber ohne Ihre Klassenpfadordnung zu sehen, ist es schwer, weiter zu helfen.
Überprüfen Sie Ihr log4j, um sicherzustellen, dass Sie nicht doppelt an Ihren Logger anhängen. Ihrem Root-Logger ist bereits ein Appender zugeordnet. Wenn Sie eine zusätzliche Kategorie filtern, stellen Sie sicher, dass Sie keinen Appender angeben, es sei denn, Sie möchten, dass es an einen anderen Appender als den Root-Benutzer gesendet wird.
<category name="org.apache.commons">
<priority value="warn"/>
<!-- don't add the same appender as your root appender -->
</category>
Ich habe das gleiche Problem. wie folgt aus:
log4j.rootLogger=info,R
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/catalina.out
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %5p %c{1}(%L):? %m%n
log4j.logger.org.apache=info, R
GERADE gesetzt log4j.rootLogger=info,R
zu log4j.rootLogger=R
dann funktioniert es!