springboot MDC 日志线程标识

 

MDC是线程级别的

1、监听器

@WebListener
public class LogListener implements ServletRequestListener {

    private final Logger log = LoggerFactory.getLogger(this.getClass());

    @Override
    public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
        MDC.clear();
    }

    @Override
    public void requestInitialized(ServletRequestEvent servletRequestEvent) {
        String mdcseq = RandomStringUtils.randomNumeric(16);
        MDC.put("mdcseq", mdcseq);
    }
}

2、logback.xml 放在 resources下



    
    
    
    
        
            ${LOG_FILE}-%d{yyyy-MM-dd}.%i.log}
            100MB
            360
            50GB
        
        
            ${MY_FILE_LOG_PATTERN}
            utf8
        
    

    
        
            ${MY_FILE_LOG_PATTERN}
            utf8
        
    

    
        
        
    

3、启动器注解:@ServletComponentScan(basePackages = {"com.*"})

4、日志前显示当前线程序号

2019-08-15 22:51:24.750 INFO [main]com.busy.DemoControlStarter.logStarted:59 -Started DemoControlStarter in 10.188 seconds (JVM running for 11.884)
4297028648688778 2019-08-15 22:52:07.841 INFO [http-nio-8765-exec-1]o.a.catalina.core.ContainerBase.[Tomcat].[localhost].[/].log:180 -Initializing Spring FrameworkServlet 'dispatcherServlet'
4297028648688778 2019-08-15 22:52:07.846 INFO [http-nio-8765-exec-1]org.springframework.web.servlet.DispatcherServlet.initServletBean:494 -FrameworkServlet 'dispatcherServlet': initialization started
4297028648688778 2019-08-15 22:52:07.896 INFO [http-nio-8765-exec-1]org.springframework.web.servlet.DispatcherServlet.initServletBean:509 -FrameworkServlet 'dispatcherServlet': initialization completed in 49 ms
4297028648688778 2019-08-15 22:52:07.951 INFO [http-nio-8765-exec-1]com.busy.controller.DemoController.test:27 -消费者日志
 2019-08-15 22:52:08.322 INFO

 

你可能感兴趣的:(Spring)