fix(log): argsArrayToString 兼容 null 和序列化异常,防止日志丢失

fix(log): 优化 argsArrayToString 方法,增强健壮性与性能

- 使用 StringBuilder 替换 String 拼接,提高性能
- 增加 try-catch 兜底,避免 JSON 序列化失败导致日志切面异常
- 保留 excludeParamNames 支持,确保敏感字段可过滤
- 修复 HttpURLConnection 请求时日志丢失的问题


Signed-off-by: rdf <rdf@live.ca>
pull/1086/head
rdf 2025-08-28 07:26:49 +00:00 committed by Gitee
parent 4a5b0e6079
commit b57d24acbc
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
1 changed files with 12 additions and 15 deletions

View File

@ -190,25 +190,22 @@ public class LogAspect
*/
private String argsArrayToString(Object[] paramsArray, String[] excludeParamNames)
{
String params = "";
if (paramsArray != null && paramsArray.length > 0)
{
for (Object o : paramsArray)
{
if (StringUtils.isNotNull(o) && !isFilterObject(o))
{
try
{
String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames));
params += jsonObj.toString() + " ";
}
catch (Exception e)
{
StringBuilder params = new StringBuilder();
if (paramsArray != null && paramsArray.length > 0) {
for (Object o : paramsArray) {
if (o != null && !isFilterObject(o)) {
try {
// 使用 fastjson 序列化,并支持字段过滤
String json = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames));
params.append(json).append(" ");
} catch (Exception e) {
// 兜底,保证日志不丢
params.append(o.toString()).append(" ");
}
}
}
}
return params.trim();
return params.toString().trim();
}
/**