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