亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

springMVC攔截器實現日志記錄請求耗時

標簽:
Spring

定义拦截器

public class LogTimeHandlerInterceptor extends HandlerInterceptorAdapter { // 单例多线程 开始时间绑定在线程上
    private ThreadLocal<Long> startTimeThreadLocal = new ThreadLocal<>();    private static final Logger log = LoggerFactory.getLogger("RequestTime"); //获取请求前时间并放入startTimeThreadLocal 
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {        long start = System.currentTimeMillis();
        startTimeThreadLocal.set(start);        return true;
    }//请求结束后计算出耗时 日志记录相关信息
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {        try {            if (handler instanceof HandlerMethod) {
                HandlerMethod method = (HandlerMethod) handler;
                String className = method.getBeanType().getName();
                String methodName = method.getMethod().getName();
                Long startTime = startTimeThreadLocal.get();
                Long endTime = System.currentTimeMillis();
                StringBuilder logs = new StringBuilder();              //可在此处获取当前用户放日志信息里 
                logs.append(" IP:").append(HttpUtil.getIpAddress(request));//获取请求地址IP 自己实现 
                logs.append(" ").append(className).append("::").append(methodName);                long time = endTime - startTime;
                logs.append(" 耗时:").append(time).append("(ms)");
                log.info(logs.toString());
            }
        } finally {             //清理开始时间
            startTimeThreadLocal.remove();
        }
    }
}

可以根据需求记录更多信息,也可以把日子信息存入数据库。

配置拦截器(基于springBoot)

@Configurationpublic class WebMvcConfig implements WebMvcConfigurer {        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(new LogTimeHandlerInterceptor());
        }
}

效果如下


webp

image.png



作者:_mfeng
链接:https://www.jianshu.com/p/c56bb5136d36


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消