From 7e2832bbfba148a8903d086f733e4ce7feb95d82 Mon Sep 17 00:00:00 2001 From: XiaoBingBy Date: Sun, 13 Mar 2022 23:34:23 +0800 Subject: [PATCH] feat: log lab --- ice-common/ice-common-log/pom.xml | 29 +++++++++++++ .../common/log/LogAutoConfiguration.java | 29 +++++++++++++ .../common/log/annotation/SysLog.java | 37 ++++++++++++++++ .../common/log/aspect/SysLogAspect.java | 42 +++++++++++++++++++ .../main/resources/META-INF/spring.factories | 3 ++ ice-common/pom.xml | 1 + ice-upms/ice-upms-service/pom.xml | 6 +++ .../upms/controller/SysUserController.java | 2 + 8 files changed, 149 insertions(+) create mode 100644 ice-common/ice-common-log/pom.xml create mode 100644 ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/LogAutoConfiguration.java create mode 100644 ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/annotation/SysLog.java create mode 100644 ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/aspect/SysLogAspect.java create mode 100644 ice-common/ice-common-log/src/main/resources/META-INF/spring.factories diff --git a/ice-common/ice-common-log/pom.xml b/ice-common/ice-common-log/pom.xml new file mode 100644 index 0000000..f0d6dc2 --- /dev/null +++ b/ice-common/ice-common-log/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + + com.icedevcloud + ice-common + 0.0.1-SNAPSHOT + + + ice-common-log + jar + + ice-common-log + + + + org.springframework + spring-webmvc + provided + + + + org.springframework + spring-aspects + + + + diff --git a/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/LogAutoConfiguration.java b/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/LogAutoConfiguration.java new file mode 100644 index 0000000..6531068 --- /dev/null +++ b/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/LogAutoConfiguration.java @@ -0,0 +1,29 @@ +package com.icedevcloud.common.log; + +import com.icedevcloud.common.log.aspect.SysLogAspect; +import lombok.AllArgsConstructor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; + +/** + * LogAutoConfiguration + * + * @author XiaoBingBy + * @since 2022-03-02 + */ +@EnableAsync +@Configuration +@AllArgsConstructor +@ConditionalOnWebApplication +public class LogAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public SysLogAspect sysLogAspect() { + return new SysLogAspect(); + } + +} diff --git a/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/annotation/SysLog.java b/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/annotation/SysLog.java new file mode 100644 index 0000000..8f947ed --- /dev/null +++ b/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/annotation/SysLog.java @@ -0,0 +1,37 @@ +package com.icedevcloud.common.log.annotation; + +import java.lang.annotation.*; + +/** + * SysLog + * + * @author XiaoBingBy + * @since 2022-03-02 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface SysLog { + + /** + * 描述 + * + * @return {String} + */ + String value(); + + /** + * 记录执行参数 + * + * @return + */ + boolean recordRequestParam() default true; + + /** + * 记录返回参数 + * + * @return + */ + boolean recordResponseParam() default true; + +} diff --git a/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/aspect/SysLogAspect.java b/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/aspect/SysLogAspect.java new file mode 100644 index 0000000..79cdfbe --- /dev/null +++ b/ice-common/ice-common-log/src/main/java/com/icedevcloud/common/log/aspect/SysLogAspect.java @@ -0,0 +1,42 @@ +package com.icedevcloud.common.log.aspect; + +import com.icedevcloud.common.log.annotation.SysLog; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; + +/** + * SysLogAspect + * + * @author XiaoBingBy + * @since 2022-03-02 + */ +@Slf4j +@Aspect +public class SysLogAspect { + + @Around("@annotation(sysLog)") + @SneakyThrows + public Object around(ProceedingJoinPoint point, SysLog sysLog) { + String strClassName = point.getTarget().getClass().getName(); + String strMethodName = point.getSignature().getName(); + log.debug("[类名]:{},[方法]:{}", strClassName, strMethodName); + + // 发送异步日志事件 + Long startTime = System.currentTimeMillis(); + Object obj; + + try { + obj = point.proceed(); + } catch (Exception e) { + throw e; + } finally { + Long endTime = System.currentTimeMillis(); + } + + return obj; + } + +} diff --git a/ice-common/ice-common-log/src/main/resources/META-INF/spring.factories b/ice-common/ice-common-log/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..a01ee72 --- /dev/null +++ b/ice-common/ice-common-log/src/main/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +# Auto Configure +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +com.icedevcloud.common.log.LogAutoConfiguration \ No newline at end of file diff --git a/ice-common/pom.xml b/ice-common/pom.xml index b7c1321..e147b89 100644 --- a/ice-common/pom.xml +++ b/ice-common/pom.xml @@ -17,6 +17,7 @@ ice-common-core ice-common-swagger + ice-common-log diff --git a/ice-upms/ice-upms-service/pom.xml b/ice-upms/ice-upms-service/pom.xml index 6542a29..c4905e7 100644 --- a/ice-upms/ice-upms-service/pom.xml +++ b/ice-upms/ice-upms-service/pom.xml @@ -48,6 +48,12 @@ 0.0.1-SNAPSHOT + + com.icedevcloud + ice-common-log + 0.0.1-SNAPSHOT + + org.springframework.boot spring-boot-starter-test diff --git a/ice-upms/ice-upms-service/src/main/java/com/icedevcloud/upms/controller/SysUserController.java b/ice-upms/ice-upms-service/src/main/java/com/icedevcloud/upms/controller/SysUserController.java index 7baac0e..14f9ac1 100644 --- a/ice-upms/ice-upms-service/src/main/java/com/icedevcloud/upms/controller/SysUserController.java +++ b/ice-upms/ice-upms-service/src/main/java/com/icedevcloud/upms/controller/SysUserController.java @@ -4,6 +4,7 @@ package com.icedevcloud.upms.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.icedevcloud.common.core.api.R; import com.icedevcloud.common.core.page.PageParam; +import com.icedevcloud.common.log.annotation.SysLog; import com.icedevcloud.common.security.dto.UserDetailsDto; import com.icedevcloud.common.security.util.SecurityUtils; import com.icedevcloud.upms.dto.SysUserDetailsDto; @@ -32,6 +33,7 @@ public class SysUserController extends BaseController