2010-12-09 5 views
1

Je souhaite imprimer les journaux avec la racine de contexte.Impression de la racine de contexte dans les journaux Log4j

Par exemple mes enregistreurs d'impression dans la console comme ci-dessous.

INFO [MandatoryAdapter] Ends - validateData 

Maintenant je veux comme ci-dessous.

INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - validateData 

Quelqu'un peut-il m'aider à cet égard.

Merci,

Narendra

Répondre

1

En supposant que vous avez des applications multiples, et chaque application a son propre fichier log4j.properties

nous faisons quelque chose comme par exemple hardcode le nom de l'application Web dans le 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 

ici <business> est le nom de l'application

Lectures

log4j properties for multiple webapps

1

Je suggère d'utiliser le MDC de Log4j (mappée Contexte de diagnostic, voir docs) pour cela. Fondamentalement, votre application définit la variable locale thread-MDC à votre nom d'application, et l'enregistreur log4j imprime cela avec chaque message.

S'il s'agit d'une application web, vous pouvez définir le MDC au début de la requête et le désinstaller à la fin de la requête.

Questions connexes