2010-12-09 5 views
1

Ich möchte Logger zusammen mit Kontextstamm drucken.Drucken Kontextstamm in Loggern Log4j

Zum Beispiel meine Logger drucken in der Konsole wie folgt.

INFO [MandatoryAdapter] Ends - validateData 

Jetzt möchte ich wie folgt.

INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - validateData 

Kann mir jemand in dieser Hinsicht helfen.

Danke,

Narendra

Antwort

1

Sie haben Nimmt man mehrere Anwendungen, und jede App hat eine eigene log4j.properties

Datei ist

wir etwas tun, wie dieser dh hard die Web-App-Namen in der ConversionPattern

log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss.SSS} <business> [-] %-5p %m \: %c-(%L) %n 

Hier <business> ist der App-Name

Weiterführende Literatur

log4j properties for multiple webapps

1

Ich schlage vor, Log4j des MDC (Mapped Diagnostic Context finden docs) dafür verwendet wird.

Im Wesentlichen legt Ihre Anwendung die MDC-Thread-lokale Variable auf Ihren Anwendungsnamen fest, und der log4j-Logger druckt diese dann mit jeder Nachricht aus.

Wenn dies für eine Webanwendung gilt, können Sie den MDC am Anfang der Anforderung festlegen und nach Abschluss der Anforderung aufheben.