AOP拦截日志报错llegalStateException: It is illegal to call this method if the current request is not in as...

原文链接:https://my.oschina.net/mengzhang6/blog/2395893

关于一次AOP拦截入参记录日志报错的梳理总结

将服务发布到tomcat中后,观察服务的运行状态以及日志记录状况; 发现有如下一个问题:

 
2018-10-31 16:20:10,701 [] INFO aspect.PayMethodLogAspectJ - rest 请求开始{1540974010700}:clazzName: com.yuantu.unified.pay.openapi.OpenApiRest, methodName:preOrder, 参数:[Ljava.lang.Object;@49ffa5bd 2018-10-31 16:20:10,790 [] INFO aspect.PayMethodLogAspectJ - rest 返回结束{1540974010700}::clazzName: com.yuantu.unified.pay.openapi.OpenApiRest, methodName:preOrder, 结果:{"msg":"subCorpNo{3701011318}","resultCode":"101","startTime":1540974010785,"success":false,"timeConsum":0},耗时毫秒数 89
 

 

日志中记录入参并没有详细的记录下来,而是记录了一个Object,这样的日志在将来的查询问题的时候是不可用的,遂进行检查代码查找问题;

代码如下:

 
 @Around("within(com.yuantu.unified.pay.openapi..*) || within(com.yuantu.unified.pay.rest..*)") public Object setCorporation(ProceedingJoinPoint joinPoint) throws Throwable { String classType = joinPoint.getTarget().getClass().getName(); Class<?> clazz = Class.forName(classType); String clazzName = clazz.getName(); String methodName = joinPoint.getSignature().getName(); Long logId = System.currentTimeMillis(); Object[] args = joinPoint.getArgs(); String paramter = ""; if (args != null) { try { paramter = JSON.toJSONString(args); } catch (Exception e) { paramter = args.toString(); } } Long currentTime = System.currentTimeMillis(); logger.info("rest 请求开始{" + logId + "}:clazzName: " + clazzName + ", methodName:" + methodName + ", 参数:" + paramter); Object proceed = Result.createFailResult(); try { proceed = joinPoint.proceed(args); } catch (Exception e) { proceed = Result.createFailResult("系统异常,请及时与我们联系,以便及时解决。错误类型:" + e.getClass

转载于:https://www.cnblogs.com/xiaoshen666/articles/11212850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值