From c1bc5d9049a431d44651e316b9fcd0b7a7371c8e Mon Sep 17 00:00:00 2001 From: Charles7c Date: Wed, 1 Mar 2023 20:53:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=A2=AB=E5=BF=BD=E7=95=A5=E7=9A=84=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cnadmin/monitor/annotation/Log.java | 2 +- .../monitor/interceptor/LogInterceptor.java | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/annotation/Log.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/annotation/Log.java index 2c56cf3e..30dcbfb5 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/annotation/Log.java +++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/annotation/Log.java @@ -51,7 +51,7 @@ public @interface Log { String module() default ""; /** - * 是否忽略日志记录(仅用于接口方法上) + * 是否忽略日志记录(用于接口方法或类上) */ boolean ignore() default false; } diff --git a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java index 6824d900..b0b91be0 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java +++ b/continew-admin-monitor/src/main/java/top/charles7c/cnadmin/monitor/interceptor/LogInterceptor.java @@ -322,20 +322,24 @@ public class LogInterceptor implements HandlerInterceptor { // 3、排除不需要记录系统日志的接口 HandlerMethod handlerMethod = (HandlerMethod)handler; Log methodLog = handlerMethod.getMethodAnnotation(Log.class); - // 3.1 请求方式不要求记录且接口方法上没有 @Log 注解,则不记录系统日志 - if (operationLogProperties.getExcludeMethods().contains(request.getMethod()) && methodLog == null) { - return false; - } - // 3.2 如果接口方法上既没有 @Log 注解,也没有 @Operation 注解,则不记录系统日志 + // 3.1 如果接口方法上既没有 @Log 注解,也没有 @Operation 注解,则不记录系统日志 Operation methodOperation = handlerMethod.getMethodAnnotation(Operation.class); if (methodLog == null && methodOperation == null) { return false; } + // 3.2 请求方式不要求记录且接口方法上没有 @Log 注解,则不记录系统日志 + if (methodLog == null && operationLogProperties.getExcludeMethods().contains(request.getMethod())) { + return false; + } // 3.3 如果接口被隐藏,不记录系统日志 if (methodOperation != null && methodOperation.hidden()) { return false; } - // 3.4 如果接口方法上有 @Log 注解,但是要求忽略该接口,则不记录系统日志 - return methodLog == null || !methodLog.ignore(); + // 3.4 如果接口方法或类上有 @Log 注解,但是要求忽略该接口,则不记录系统日志 + if (methodLog != null && methodLog.ignore()) { + return false; + } + Log classLog = handlerMethod.getBeanType().getDeclaredAnnotation(Log.class); + return classLog == null || !classLog.ignore(); } }