将上下文路径添加到 SLF4J 日志语句
Adding context path to SLF4J log statements
我在单个 tomcat 中部署了多个 Spring 网络应用程序,并将错误消息记录在单个日志文件中。我需要记录命中请求的 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);
}
}
没有找到其他方法,所以问题中提到的代码似乎是唯一的选择。关闭线程。
我在单个 tomcat 中部署了多个 Spring 网络应用程序,并将错误消息记录在单个日志文件中。我需要记录命中请求的 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);
}
}
没有找到其他方法,所以问题中提到的代码似乎是唯一的选择。关闭线程。