2010-11-18 4 views
0

Ich bin gezwungen, benutzerdefinierte Closed-Source-Lib in meiner Web-App in Tomcat 6 eingesetzt zu verwenden. Es protokolliert eine Vielzahl von Ausnahmen in meinem Standout-Protokoll (catalina.out) über printStackTrace und wiederhole sie dann für mich. Gibt es eine Möglichkeit, die Protokollierung von Ausnahmen von einem bestimmten in webapp bereitgestellten Paket zu verhindern oder umzuleiten?So protokollieren Ausnahmen von einem bestimmten Paket in Tomcat

Antwort

1

Wie wäre es dieses Segment innerhalb eines try/catch-Segment aufrufen, damit die Ausnahme abfangen, bevor Sie Ihre App stirbt, es zu log4j Hinzufügen (oder jede andere Logging-Mechanismus)

+0

Ich speichere sie (ich muss, sie sind keine Laufzeit Ausnahmen) und sie töten nicht die App, wie ich sie handhabe (ignoriere). Es ist nur so, dass sie über printStackTrace in mein Tomcat Log geschickt werden (zumindest meine Vermutung) INNERHALB der Bibliothek, BEVOR sie mir zugeworfen werden. Ich will sie nicht dort und kann das nicht ändern (closed source). Sie sind gerade dabei, meine catalina.out aufzuspüren, da ich täglich rund 300 davon bekomme, was es schwierig macht, Ausnahmen zu finden, die meine App wirklich töten können. – mineralko

2

e.printStackTrace druckt auf der Konsole ähnlich wie System.err

In Tomcat, die catalina.sh hat diese Linie, die alle Konsolenfehler Dies gilt für den Tomcat-Server als Ganzes catalina.out umleitet.

"$CATALINA_BASE"/logs/catalina.out 2>&1 & 

kurz Also, wenn Sie kann nicht basteln mit dem Codequelle log4j verwenden, könnten Sie versuchen, dies im catalina.sh auf eine andere Datei zu senden, aber auch hier würde dieses Paket werden nicht spezifisch, wie Sie wollen.

Und das würde nur eine andere Datei in ähnlicher Weise aufblähen.

Verwandte Themen