使用拦截器和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));
    }
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜掉在星星上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值