[英]MDC is not Effective other than Filter in Spring Boot App
我正在使用MDC将每个请求的sessionId记录到spring boot应用程序中。 我正在使用log4j2进行日志记录。 例如,当我将任何键放入Filter时,以下是我的Filter类。
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jboss.logging.MDC;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
@Component
public class MDCFilter extends OncePerRequestFilter{
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
MDC.put("sessionId", "12345");
filterChain.doFilter(request, response);
}
}
当我尝试将“ sessionId”键放入控制器中时。 它没有将我的控制器值记录在日志中。
例如:我将控制器添加为:
MDC.put("sessionId", "ABC");
但是在我的日志中仍然打印“ 12345” 。
为什么MDC除过滤器外无效?
请使用以下MDC类:
org.jboss.logging.MDC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.