Печать корневого контекста в логгерах Log4j

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

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

INFO  [MandatoryAdapter] Ends - validateData

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

INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - validateData

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

Спасибо,

Нарендра


person Narendra    schedule 09.12.2010    source источник


Ответы (2)


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

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

person JoseK    schedule 09.12.2010

Я предлагаю использовать для этого MDC Log4j (сопоставленный диагностический контекст, см. docs).

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

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

person skaffman    schedule 09.12.2010
comment
Для веб-приложения, использующего log4j2, нужно ли устанавливать Thread-Context для каждого запроса или каждого потока? - person Gaurav; 06.07.2018