使用拦截器和Aop在控制台 日志打印请求参数和请求路径等信息
2021/6/4 10:25:40
本文主要是介绍使用拦截器和Aop在控制台 日志打印请求参数和请求路径等信息,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、使用拦截器在控制台日志打印请求参数和请求路径等信息
public class GlobalRequestInterceptor implements HandlerInterceptor { private static final Logger log = LoggerFactory.getLogger(GlobalRequestInterceptor.class); public GlobalRequestInterceptor() { } public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { CgmUser user = SecurityUtils.getUser(); log.info("用户信息:{}", ObjectUtil.isNull(user) ? "用户未登录" : String.format("uid=%s;phone=%s;username=%s", user.getId(), user.getPhone(), user.getUsername())); log.info("请求地址:[{}]-[{}]", request.getMethod(), request.getRequestURL()); log.info("GET请求参数:[{}]", request.getQueryString()); log.info("控制层:[{}]", handler); return true; } }
二、使用Aop在控制台 日志打印请求参数和请求路径等信息
@Aspect @Component @Slf4j public class LogAspect { @Pointcut("execution(public * com.cgmcomm.cgm.admin.controller.*.*(..))") public void requestAspect(){} @Before(value = "requestAspect()") public void methodBefore(JoinPoint joinPoint){ ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = requestAttributes.getRequest(); //打印请求内容 //获取当前登录人,util可以自己写 log.info("用户信息:{}", ObjectUtil.isNull(SecurityUtils.getUser()) ? "用户未登录" : String.format("uid=%s;phone=%s;username=%s", user.getId(), user.getPhone(), user.getUsername())); // log.info("请求ip:"+request.getRemoteAddr()); log.info("请求地址:{},请求方式:{},请求类方法:{},请求类方法参数:{}" , request.getRequestURL().toString(),request.getMethod(), joinPoint.getSignature(),Arrays.toString(joinPoint.getArgs())); } //在方法执行完结后打印返回内容 @AfterReturning(returning = "o",pointcut = "requestAspect()") public void methodAfterReturing(Object o ){ log.info("返回数据:{}" , JSONObject.toJSONString(o)); } }
这篇关于使用拦截器和Aop在控制台 日志打印请求参数和请求路径等信息的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南