zoukankan      html  css  js  c++  java
  • LogBack通过MDC实现日志记录区分用户Session

    1.首先实现一个interceptor,在请求开始的时候MDC put一个Session标志,interceptor结束的时候remove掉

    public class SessionInterceptor implements HandlerInterceptor {
        /**
         * 会话ID
         */
        private final static String SESSION_KEY = "sessionId";
    
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
                                 Object handler) throws Exception {
            // 放SessionId
            String token = UUID.randomUUID().toString();
            MDC.put(SESSION_KEY, token);
    
            return true;
        }
    
        public void postHandle(HttpServletRequest request, HttpServletResponse response,
                               Object handler, ModelAndView modelAndView) throws Exception {
    
        }
    
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
                                    Object handler, Exception ex) throws Exception {
            // 删除
            MDC.remove(SESSION_KEY);
        }
    }

    2.然后在logback相应的配置中加上seesionId的配置就可以了

     <pattern> %X{sessionId} %date [%thread] %-5level %logger{80} - %msg%n</pattern>

    MDC中的值在logback.xml文件中的pattern中用%X{key}来引用!

  • 相关阅读:
    shell脚本-awk
    shell脚本-sed命令
    shell脚本-grep和正则表达式
    wuti
    dmesg、stat命令
    uname、hostname命令
    tee、vi/vim命令
    tr、od命令
    vimdiff、rev命令
    dos2unix、diff命令
  • 原文地址:https://www.cnblogs.com/winner-0715/p/6273645.html
Copyright © 2011-2022 走看看