From f12851acc3469c2e46069dad847132a30d2274e6 Mon Sep 17 00:00:00 2001 From: wanghu Date: Thu, 20 Aug 2026 10:26:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aspect/SysOperationLogAspect.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/yunhai/bschclassmanage/aspect/SysOperationLogAspect.java b/src/main/java/com/yunhai/bschclassmanage/aspect/SysOperationLogAspect.java index 52d8357..82e8713 100644 --- a/src/main/java/com/yunhai/bschclassmanage/aspect/SysOperationLogAspect.java +++ b/src/main/java/com/yunhai/bschclassmanage/aspect/SysOperationLogAspect.java @@ -9,6 +9,7 @@ import com.yunhai.bschclassmanage.utils.OtherUtil; import com.yunhai.bschclassmanage.utils.SensitiveDataUtil; import com.yunhai.bschclassmanage.utils.UserContext; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -46,6 +47,7 @@ public class SysOperationLogAspect { "com.yunhai.bschclassmanage.controller.api.SysOperationLogController" // 审计日志查询 ); private static final int DEFAULT_MAX_RESPONSE_SIZE = 10240; + private static final int MAX_ERROR_MSG = 8000; @Autowired private ISysOperationLogService sysOperationLogService; @@ -72,11 +74,7 @@ public class SysOperationLogAspect { return result; } catch (Throwable e) { entity.setStatusCode(500); - String msg = e.getMessage(); - if (msg == null || msg.trim().isEmpty()) { - msg = e.getClass().getName(); - } - entity.setErrorMsg(truncate(msg, 2000)); + entity.setErrorMsg(buildErrorMsg(e)); throw e; } finally { entity.setCostTime(System.currentTimeMillis() - start); @@ -145,6 +143,12 @@ public class SysOperationLogAspect { return a != null ? a.getRequest() : null; } + private String buildErrorMsg(Throwable e) { + String msg = e.getMessage(); + String head = (msg == null || msg.trim().isEmpty()) ? e.getClass().getName() : msg; + return truncate(head + System.lineSeparator() + ExceptionUtils.getStackTrace(e), MAX_ERROR_MSG); + } + private String truncate(String s, int max) { return s != null && s.length() > max ? s.substring(0, max) : s; }