Печать корневого контекста в логгерах Log4j - PullRequest
2 голосов
/ 09 декабря 2010

Я хочу напечатать логгеры вместе с контекстным корнем.

Например, мои логгеры печатают в консоли, как показано ниже.

INFO  [MandatoryAdapter] Ends - validateData

Теперь я хочу, как показано ниже.

INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - validateData

Может ли кто-нибудь помочь мне в этом отношении.

Спасибо

нарендра

Ответы [ 2 ]

2 голосов
/ 09 декабря 2010

Я предлагаю использовать MDC Log4j (Mapped Diagnostic Context, см. docs ) для этого.

По сути, ваше приложение устанавливает локальную переменную потока MDC для имени приложения, а регистратор log4j затем распечатывает это вместе с каждым сообщением.

Если это для веб-приложения, то вы можетеустановите MDC в начале запроса и отмените его, когда он завершится.

2 голосов
/ 09 декабря 2010

Если у вас есть несколько приложений, и у каждого приложения есть собственный файл log4j.properties

, мы делаем что-то вроде этого, то есть hardcode имя веб-приложения в 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

Здесь <business> - это имя приложения

Дальнейшее чтение

log4j свойства для нескольких веб-приложений

...