From 9a4375369ce2ca63412551071b1a3c3fa85921b8 Mon Sep 17 00:00:00 2001 From: zhouxiantao <1026371446@qq.com> Date: Mon, 09 Sep 2024 14:43:34 +0800 Subject: [PATCH] aop日志打印 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/aop/LogAop.java | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 57 insertions(+), 0 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/aop/LogAop.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/aop/LogAop.java new file mode 100644 index 0000000..55f5771 --- /dev/null +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/aop/LogAop.java @@ -0,0 +1,57 @@ +package cn.huge.module.aop; + +import cn.huge.base.common.utils.ObjectUtils; +import com.alibaba.fastjson.JSON; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.springframework.stereotype.Component; + +/** + * @author zhouxiantao + * @create 2024-08-30 11:46 + */ +@Component +@Aspect +@Slf4j +public class LogAop { + @Around("execution(* cn.huge.module.*.controller.*.*.*(..))") + public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable { + long starttime = System.currentTimeMillis(); + Object[] objs = joinPoint.getArgs(); + try{ + log.info("start to {} {}", joinPoint.getSignature().getName(), JSON.toJSONString(objs)); + }catch (Exception e){ + log.info("start to {} 参数不能转成字符串,忽略不处理", joinPoint.getSignature().getName()); + } + Object result = joinPoint.proceed(objs); + long endtime = System.currentTimeMillis(); + try { + String resultJson = JSON.toJSONString(result); + if(ObjectUtils.isNotEmpty(result) && resultJson.length() > 1000) { + log.info("finish to {} 日志过长不打印 {}ms", joinPoint.getSignature().getName(),endtime-starttime); + }else { + log.info("finish to {} {} {}ms", joinPoint.getSignature().getName(), resultJson,endtime-starttime); + } + }catch (Exception e){ + log.info("finish to {} 不能转成字符串,忽略不处理 {}ms", joinPoint.getSignature().getName(),endtime-starttime); + } + return result; + } + + @Around("execution(* cn.huge.module.*.dao.mapper.*.*(..))") + public Object aroundAdviceDao(ProceedingJoinPoint joinPoint) throws Throwable { + long starttime = System.currentTimeMillis(); + Object[] objs = joinPoint.getArgs(); + Object result = joinPoint.proceed(objs); + long endtime = System.currentTimeMillis(); + Long times = endtime-starttime; + if(times > 2000){ + log.info("Executing sql consumes time more than 1s {} ,{}ms", joinPoint.getSignature().getName(),endtime-starttime); + }else{ + log.info("Executing sql consumes time {} ,{}ms", joinPoint.getSignature().getName(),endtime-starttime); + } + return result; + } +} -- Gitblit v1.8.0