java 拦截器 日志_使用spring拦截器实现日志管理实例

本文介绍了如何使用Spring的HandlerInterceptor实现日志管理。通过创建`LogInterceptor`类,实现了请求的预处理、返回处理和后处理,记录请求开始时间、结束时间、视图名称及请求详情,帮助监控和分析系统性能。
摘要由CSDN通过智能技术生成

使用HandlerInterceptor拦截器,可以拦截请求,实现通用的日志管理操作

一、添加拦截器类

在"src/main/java"代码文件夹的"org.xs.demo1"的包下新建"LogInterceptor.java"类:

package org.xs.demo1;

import java.text.SimpleDateFormat;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.core.NamedThreadLocal;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

/**

* 日志拦截器

* @author ThinkGem

*/

public class LogInterceptor implements HandlerInterceptor {

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

private static final ThreadLocal startTimeThreadLocal = new NamedThreadLocal("ThreadLocal StartTime");

/**

* 预处理

*/

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

long beginTime = System.currentTimeMillis(); //开始时间

startTimeThreadLocal.set(beginTime); //线程绑定变量(该数据只有当前请求的线程可见)

log.info("开始计时: {}", new SimpleDateFormat("hh:mm:ss.SSS").format(beginTime));

return true;

}

/**

* 返回处理

*/

@Override

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

if (modelAndView != null){

log.info("ViewName: " + modelAndView.getViewName());

}

}

/**

* 后处理

*/

@Override

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

// 保存日志

//LogUtils.saveLog(request, handler, ex, null);

// 输出日志信息

log.info("访问地址:" + request.getRequestURI() + ",执行方式:" + request.getMethod());

long beginTime = startTimeThreadLocal.get(); //得到线程绑定的局部变量(开始时间)

long endTime = System.currentTimeMillis(); //结束时间

log.info("计时结束:{}", new SimpleDateFormat("hh:mm:ss.SSS").format(endTime));

}

}

二、修改配置文件

修改spring-mvc.xml件,加入:

三、运行测试

访问"http://localhost:8080/demo1/hello/list2"地址

0450cbf79bd3ca6ff4a3a6e47313dea1.png

可以看到拦截器中输出的日志信息了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值