In Log4J, warum% C in ConversionPattern '?' (Fragezeichen) mit AsyncAppender?

8

Ich habe Probleme bei der Verwendung von% C in ConversionPattern mit AsyncAppender.

Meine Lo4J Konfiguration ist:

%Vor%

Und mein Testcode ist:

%Vor%

Das Ergebnis des Testcodes lautet:

  

15.03.2012 11: 51: 22.570? - Hallo, Welt!

Ohne AsynAppender funktioniert es gut:

  

15.03.2012 11: 51: 06,002 Log4jTest - Hallo, Welt!

Mit% c (Kategorie) funktioniert es auch gut.

Was vermisse ich?

Bitte lassen Sie es mich wissen.

Vielen Dank im Voraus: -)

Referenz:

  

Ссылка

    
Johnny Lim 15.03.2012, 03:03
quelle

1 Antwort

9

Bei Verwendung von "% C" oder "% M" verwendet log4J Throwable.getStackTrace, um den StackTrace abzurufen und diese Informationen zu verwenden, um die Klasse und Methode des Aufrufers abzurufen. Das Problem besteht darin, dass das Throwable bei Verwendung eines AsyncAppender in einem anderen Thread erstellt wird und das StackTrace-Objekt die Aufrufmethode nicht enthält.

    
cchabanois 08.06.2012 12:10
quelle

Tags und Links