直接上代码,添加两个类即可
WebConfig:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Component
public class WebConfig implements WebMvcConfigurer {
@Autowired
LogParamsInterceptor timeInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(timeInterceptor);
}
}
LogParamsInterceptor:
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
@Component
@Slf4j
public class LogParamsInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
log.info("preHandle start");
Enumeration headerNames = request.getHeaderNames();
//使用循环遍历请求头,并通过getHeader()方法获取一个指定名称的头字段
while (headerNames.hasMoreElements()){
String headerName = headerNames.nextElement();
log.info("preHandle header中信息,headerName:{},headerValue:{}",headerName ,request.getHeader(headerName));
}
log.info("preHandle requestURI:{}" , request.getRequestURI());
log.info("preHandle queryString:{}",request.getQueryString());
log.info("preHandle end");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception ex) throws Exception {
log.info("afterCompletion start");
Enumeration headerNames = request.getHeaderNames();
//使用循环遍历请求头,并通过getHeader()方法获取一个指定名称的头字段
while (headerNames.hasMoreElements()){
String headerName = headerNames.nextElement();
log.info("afterCompletion header中信息,headerName:{},headerValue:{}",headerName ,request.getHeader(headerName));
}
log.info("afterCompletion requestURI:{}" , request.getRequestURI());
log.info("afterCompletion queryString:{}",request.getQueryString());
log.info("afterCompletion ex:{}" + ex);
log.info("afterCompletion response响应状态码:{}",response.getStatus());
log.info("afterCompletion end");
}
}
打印信息示例:
2021-11-26 22:41:21.689 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle start
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle header中信息,headerName:host,headerValue:localhost:8001
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle header中信息,headerName:user-agent,headerValue:curl/7.78.0
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle header中信息,headerName:accept,headerValue:**
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion requestURI:/test1/test
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion queryString:null
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion ex:{}null
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion response响应状态码:404
2021-11-26 22:41:21.690 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion end
2021-11-26 22:41:21.691 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle start
2021-11-26 22:41:21.691 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle header中信息,headerName:host,headerValue:localhost:8001
2021-11-26 22:41:21.691 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle header中信息,headerName:user-agent,headerValue:curl/7.78.0
2021-11-26 22:41:21.691 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : preHandle header中信息,headerName:accept,headerValue:**
2021-11-26 22:41:21.692 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion requestURI:/error
2021-11-26 22:41:21.692 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion queryString:null
2021-11-26 22:41:21.692 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion ex:{}null
2021-11-26 22:41:21.692 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion response响应状态码:404
2021-11-26 22:41:21.692 INFO 33700 --- [nio-8001-exec-4] p.w.s.s.config.LogParamsInterceptor : afterCompletion end



