diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index f869aa36..60cb6548 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -47,6 +47,9 @@ public class LogAspect /** 计算操作消耗时间 */ private static final ThreadLocal TIME_THREADLOCAL = new NamedThreadLocal("Cost Time"); + /** 参数最大长度限制 */ + private static final int PARAM_MAX_LENGTH = 2000; + /** * 处理请求前执行 */ @@ -173,7 +176,7 @@ public class LogAspect if (StringUtils.isNotEmpty(map)) { String params = JSONObject.toJSONString(map, excludePropertyPreFilter(excludeParamNames)); - operLog.setOperParam(StringUtils.substring(params, 0, 2000)); + operLog.setOperParam(StringUtils.substring(params, 0, PARAM_MAX_LENGTH)); } else { @@ -181,7 +184,7 @@ public class LogAspect if (StringUtils.isNotNull(args)) { String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); - operLog.setOperParam(StringUtils.substring(params, 0, 2000)); + operLog.setOperParam(params); } } } @@ -199,7 +202,7 @@ public class LogAspect */ private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames) { - String params = ""; + StringBuilder params = new StringBuilder(); if (paramsArray != null && paramsArray.length > 0) { for (Object o : paramsArray) @@ -209,15 +212,20 @@ public class LogAspect try { Object jsonObj = JSONObject.toJSONString(o, excludePropertyPreFilter(excludeParamNames)); - params += jsonObj.toString() + " "; + params.append(jsonObj).append(" "); + if (params.length() >= PARAM_MAX_LENGTH) + { + return StringUtils.substring(params.toString(), 0, PARAM_MAX_LENGTH); + } } catch (Exception e) { + log.error("请求参数拼装异常 msg:{}, 参数:{}", e.getMessage(), paramsArray, e); } } } } - return params.trim(); + return params.toString(); } /**