From eb6d2c647a429b8aa43e573ce6dd1d501df17f4b Mon Sep 17 00:00:00 2001 From: yovinchen Date: Tue, 23 Jan 2024 12:06:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20AOP=20=E5=88=87=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E6=95=B4=E5=90=88=E6=B5=81=E6=B0=B4=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- xlcs-parent/common/pom.xml | 4 +- xlcs-parent/common/service-util/pom.xml | 4 + .../xlcs/common/aspect/LogAspect.java | 100 ++++++++++++++++++ xlcs-parent/pom.xml | 8 +- xlcs-parent/service-client/pom.xml | 5 +- xlcs-parent/service-gateway/pom.xml | 4 + .../src/main/resources/logback-spring.xml | 4 +- xlcs-parent/service/pom.xml | 5 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 4 +- .../src/main/resources/logback-spring.xml | 61 ++++++----- 19 files changed, 182 insertions(+), 51 deletions(-) create mode 100644 xlcs-parent/common/service-util/src/main/java/com/yovinchen/xlcs/common/aspect/LogAspect.java diff --git a/README.md b/README.md index e2fa63d..b17e1fe 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ version: "3" services: elasticsearch: image: elasticsearch:8.4.2 - container_name: elasticsearchsky + container_name: elasticsearch ports: - "9200:9200" healthcheck: diff --git a/xlcs-parent/common/pom.xml b/xlcs-parent/common/pom.xml index 1e36fe9..19ad69a 100644 --- a/xlcs-parent/common/pom.xml +++ b/xlcs-parent/common/pom.xml @@ -47,8 +47,8 @@ provided - com.github.xiaoymin - knife4j-spring-boot-starter + org.springframework.boot + spring-boot-starter-aop diff --git a/xlcs-parent/common/service-util/pom.xml b/xlcs-parent/common/service-util/pom.xml index 434230b..3f5740c 100644 --- a/xlcs-parent/common/service-util/pom.xml +++ b/xlcs-parent/common/service-util/pom.xml @@ -64,6 +64,10 @@ velocity-engine-core 2.0 + + cn.hutool + hutool-all + 8 diff --git a/xlcs-parent/common/service-util/src/main/java/com/yovinchen/xlcs/common/aspect/LogAspect.java b/xlcs-parent/common/service-util/src/main/java/com/yovinchen/xlcs/common/aspect/LogAspect.java new file mode 100644 index 0000000..74888c3 --- /dev/null +++ b/xlcs-parent/common/service-util/src/main/java/com/yovinchen/xlcs/common/aspect/LogAspect.java @@ -0,0 +1,100 @@ +package com.yovinchen.xlcs.common.aspect; + +import cn.hutool.core.util.RandomUtil; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.support.spring.PropertyPreFilters; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +/** + * ClassName: LogAspect + * Package: com.yovinchen.xlcs.common.aspect + * + * @author yovinchen + * @Create 2024/1/23 10:43 + */ +@Aspect +@Component +public class LogAspect { + private final static Logger LOG = LoggerFactory.getLogger(LogAspect.class); + + public LogAspect() { + System.out.println("Common LogAspect"); + } + + /** + * 定义一个切点 + */ + @Pointcut("execution(public * com.yovinchen.xlcs..*Controller.*(..))") + public void controllerPointcut() { + } + + @Before("controllerPointcut()") + public void doBefore(JoinPoint joinPoint) { + + MDC.put("LOG_ID", System.currentTimeMillis() + RandomUtil.randomString(3)); + // 开始打印请求日志 + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + Signature signature = joinPoint.getSignature(); + String name = signature.getName(); + + // 打印请求信息 + LOG.info("------------- 开始 -------------"); + LOG.info("请求地址: {} {}", request.getRequestURL() + .toString(), request.getMethod()); + LOG.info("类名方法: {}.{}", signature.getDeclaringTypeName(), name); + LOG.info("远程地址: {}", request.getRemoteAddr()); + + // 打印请求参数 + Object[] args = joinPoint.getArgs(); + // LOG.info("请求参数: {}", JSONObject.toJSONString(args)); + + // 排除特殊类型的参数,如文件类型 + Object[] arguments = new Object[args.length]; + for (int i = 0; i < args.length; i++) { + if (args[i] instanceof ServletRequest || args[i] instanceof ServletResponse || args[i] instanceof MultipartFile) { + continue; + } + arguments[i] = args[i]; + } + // 排除字段,敏感字段或太长的字段不显示:身份证、手机号、邮箱、密码等 + String[] excludeProperties = {}; + PropertyPreFilters filters = new PropertyPreFilters(); + PropertyPreFilters.MySimplePropertyPreFilter excludefilter = filters.addFilter(); + excludefilter.addExcludes(excludeProperties); + LOG.info("请求参数: {}", JSONObject.toJSONString(arguments, excludefilter)); + } + + @Around("controllerPointcut()") + public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { + long startTime = System.currentTimeMillis(); + Object result = proceedingJoinPoint.proceed(); + // 排除字段,敏感字段或太长的字段不显示:身份证、手机号、邮箱、密码等 + String[] excludeProperties = {}; + PropertyPreFilters filters = new PropertyPreFilters(); + PropertyPreFilters.MySimplePropertyPreFilter excludefilter = filters.addFilter(); + excludefilter.addExcludes(excludeProperties); + LOG.info("返回结果: {}", JSONObject.toJSONString(result, excludefilter)); + LOG.info("------------- 结束 耗时:{} ms -------------", System.currentTimeMillis() - startTime); + return result; + } + +} + diff --git a/xlcs-parent/pom.xml b/xlcs-parent/pom.xml index 87cf480..8bb425e 100644 --- a/xlcs-parent/pom.xml +++ b/xlcs-parent/pom.xml @@ -30,7 +30,8 @@ 3.4.0 8.0.30 0.7.0 - 2.0.0 + 5.8.25 + 1.2.70 4.5.1 3.1.0 4.1.1 @@ -69,6 +70,11 @@ mybatis-plus-boot-starter ${mybatis-plus.version} + + cn.hutool + hutool-all + ${hutool.version} + mysql mysql-connector-java diff --git a/xlcs-parent/service-client/pom.xml b/xlcs-parent/service-client/pom.xml index 758b333..16102a5 100644 --- a/xlcs-parent/service-client/pom.xml +++ b/xlcs-parent/service-client/pom.xml @@ -33,7 +33,10 @@ 1.0-SNAPSHOT provided - + + org.springframework.boot + spring-boot-starter-aop + org.springframework.boot spring-boot-starter-web diff --git a/xlcs-parent/service-gateway/pom.xml b/xlcs-parent/service-gateway/pom.xml index 06b8175..6a2bfe9 100644 --- a/xlcs-parent/service-gateway/pom.xml +++ b/xlcs-parent/service-gateway/pom.xml @@ -43,6 +43,10 @@ com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery + + org.springframework.boot + spring-boot-starter-aop + com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config diff --git a/xlcs-parent/service-gateway/src/main/resources/logback-spring.xml b/xlcs-parent/service-gateway/src/main/resources/logback-spring.xml index 4631abc..0dec897 100644 --- a/xlcs-parent/service-gateway/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service-gateway/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/pom.xml b/xlcs-parent/service/pom.xml index 38ce5d5..96ae0ba 100644 --- a/xlcs-parent/service/pom.xml +++ b/xlcs-parent/service/pom.xml @@ -45,7 +45,10 @@ apm-toolkit-trace 9.1.0 - + + org.springframework.boot + spring-boot-starter-aop + diff --git a/xlcs-parent/service/service-acl/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-acl/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-acl/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-acl/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-activity/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-activity/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-activity/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-activity/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-cart/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-cart/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-cart/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-cart/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-home/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-home/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-home/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-home/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-order/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-order/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-order/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-order/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-payment/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-payment/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-payment/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-payment/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-product/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-product/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-product/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-product/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-search/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-search/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-search/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-search/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-sys/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-sys/src/main/resources/logback-spring.xml index 9776f5d..1bb2098 100644 --- a/xlcs-parent/service/service-sys/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-sys/src/main/resources/logback-spring.xml @@ -17,12 +17,12 @@ - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> diff --git a/xlcs-parent/service/service-user/src/main/resources/logback-spring.xml b/xlcs-parent/service/service-user/src/main/resources/logback-spring.xml index 579d431..1bb2098 100644 --- a/xlcs-parent/service/service-user/src/main/resources/logback-spring.xml +++ b/xlcs-parent/service/service-user/src/main/resources/logback-spring.xml @@ -6,23 +6,23 @@ - + - + - + + value="%boldMagenta([%d{yyyy-MM-dd HH:mm:ss.SSS}]) %red([%thread]) %boldMagenta(%-5level) %green(%-18X{LOG_ID}) %blue(%logger{20}.%method@%line) %magenta(·#═>) %cyan(%msg%n)"/> @@ -36,7 +36,7 @@ - + ${LOG_HOME}/${APP_NAME}/debug/${APP_NAME}-%d{yyyy-MM-dd}-%i.log ${LOG_FILE_MAX_SIZE} @@ -60,7 +60,7 @@ - + ${LOG_HOME}/${APP_NAME}/info/${APP_NAME}-%d{yyyy-MM-dd}-%i.log ${LOG_FILE_MAX_SIZE} @@ -85,7 +85,6 @@ - ${LOG_HOME}/${APP_NAME}/error/${APP_NAME}-%d{yyyy-MM-dd}-%i.log ${LOG_FILE_MAX_SIZE} @@ -108,7 +107,7 @@ - + ${LOG_HOME}/${APP_NAME}/druid/SlowSql_${APP_NAME}-%d{yyyy-MM-dd}-%i.log ${LOG_FILE_MAX_SIZE} @@ -138,28 +137,38 @@ - - - udp:10.211.55.50 - - 12201 - 1.1 - - ${APP_NAME} - true - true - true - yyyy-MM-dd HH:mm:ss,SSS - 8192 + + + + + + + + + + + + + + + + + + + + ${APM_PATTERN} + + - - + + @@ -170,7 +179,8 @@ - + + @@ -181,7 +191,8 @@ - + +