在loggers Log4j中打印上下文根

在loggers Log4j中打印上下文根,log4j,config,Log4j,Config,我想打印日志和上下文根 例如,我的记录器在控制台中打印,如下所示 INFO [MandatoryAdapter] Ends - validateData INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - validateData 现在我想要如下 INFO [MandatoryAdapter] Ends - validateData INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - val

我想打印日志和上下文根

例如,我的记录器在控制台中打印,如下所示

INFO  [MandatoryAdapter] Ends - validateData
INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - validateData
现在我想要如下

INFO  [MandatoryAdapter] Ends - validateData
INFO [APPLICATION_NAME] [MandatoryAdapter] Ends - validateData
有谁能在这方面帮助我吗

谢谢


Narendra

假设您有多个应用程序,每个应用程序都有自己的log4j.properties文件

我们这样做,即在转换模式中硬编码web应用程序名称

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
log4j.appender.LOGFILE.layout=org.apache.log4j.patternalyout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyyy-MM-dd HH \:MM \:ss.SSS}[-]%-5p%m\:%c-(%L)%n
这里
是应用程序名称

进一步阅读


我建议使用Log4j的MDC(映射诊断上下文,请参阅)进行此操作

本质上,应用程序将MDC thread局部变量设置为应用程序名称,然后log4j记录器将其与每条消息一起打印出来


如果这是针对Web应用程序的,那么您可以在请求开始时设置MDC,并在请求完成时取消设置它。

对于使用log4j2的Web应用程序,是否需要为每个请求或每个线程设置线程上下文?