Capture javax.net.debug in Datei

8

Ich muss die javax.net.debug = all-Ausgabe speichern, die in einer Datei erstellt wird. Ich verwende log4j und habe versucht, einen Logging-Proxy wie im folgenden Beispiel zu erstellen. Es nimmt jedoch nicht die Informationen auf. Ich bin nicht sicher, wo der javax.net.debug gedruckt wird. Ich habe versucht, system.out und system.err auf diese Weise zu erfassen, aber keiner von beiden hat funktioniert. Danke für deine Hilfe.

%Vor%     
Loomer 04.01.2011, 16:32
quelle

3 Antworten

7

Vielleicht erstellt das Subsystem seine Kopie der Werte und Sie sind zu spät beim Umschalten. Versuchen Sie dies zuerst in Ihrem Hauptbuch.

BEARBEITEN

OK - ich habe Ihr Idiom komplett vermisst. Ich denke, du solltest diese innere Klasse nicht benutzen. Sie sollten eine PrintStream-Instanz in einem OutputStream definieren, der bei jedem "\ n" einen neuen Protokolleintrag erstellt. Die Art, wie Sie es jetzt tun, vermisst viele Möglichkeiten, Ihre Instanz zu "drucken".

%Vor%

und dann

%Vor%

Sie möchten vielleicht immer noch einen Verweis auf den vorherigen Stream einfügen - links als Übung: -)

    
mtraut 04.01.2011, 16:58
quelle
3

Dies ist eine lange Geschichte, aber es ist möglich, dass das Überschreiben von print(String) nicht ausreicht. Zum Beispiel gibt es auch print(Object) usw., ganz zu schweigen von den verschiedenen Methoden append() und format() .

    
Matt Solnit 04.01.2011 18:17
quelle
2

Sie müssen die Datei log4j.properties im Klassenpfad (/ WEB-INF / classes /) mit folgendem Inhalt haben:

log4j.properties Datei

%Vor%

Dadurch werden Ihre Protokolleinträge in tomcat-Ausgangsverzeichnis /logs/custom.log

geschrieben

Hoffe, das wird dir helfen.

    
Mat B. 04.01.2011 16:58
quelle

Tags und Links