添加SLF4J日志语句的上下文路径

时间:2015-09-15 16:23:57

标签: java spring tomcat slf4j

我在单个tomcat中部署了多个Spring Web应用程序,并将错误消息记录在单个日志文件中。我需要记录请求被命中的webapp的上下文路径。 目前,我必须实现一个servlet过滤器,以便为每个请求设置变量值。必须这样做,因为MDC实例是每个线程。

由于应用程序的上下文路径是常量,有没有办法只设置一次MDC变量?

log4j.appender.LOGFILE.layout.ConversionPattern=%d %X{applicationId} %-5p %c - %m%n 

要在MDC中设置applicationId,我已经定义了一个Servlet过滤器

public class LogFilter implements Filter {

  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
    MDC.put("applicationId", request.getServletContext().getContextPath());
    chain.doFilter(request, response);
  }
}

1 个答案:

答案 0 :(得分:0)

没有找到任何其他方式,因此问题中提到的代码似乎是唯一的选择。关闭线程。