From a177ab15c1f091dbed6adacd097f809d2291db53 Mon Sep 17 00:00:00 2001 From: xujun Date: Thu, 21 May 2026 15:51:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/common/log/filter/HttpLogFilter.java | 70 +++++++++++-------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/xtools-app-common/xtools-app-common-log/xtools-app-common-log-filter/src/main/java/xtools/app/common/log/filter/HttpLogFilter.java b/xtools-app-common/xtools-app-common-log/xtools-app-common-log-filter/src/main/java/xtools/app/common/log/filter/HttpLogFilter.java index 76d8d3e..39bad7e 100644 --- a/xtools-app-common/xtools-app-common-log/xtools-app-common-log-filter/src/main/java/xtools/app/common/log/filter/HttpLogFilter.java +++ b/xtools-app-common/xtools-app-common-log/xtools-app-common-log-filter/src/main/java/xtools/app/common/log/filter/HttpLogFilter.java @@ -108,42 +108,50 @@ public class HttpLogFilter extends BaseFilter implements Ordered, BaseParams { // 获取请求日志节点 LogTrack logTrack = LogTrackHolder.get(); - // 包装请求和响应 + // 包装请求 ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request, DEFAULT_CACHE_LIMIT); - ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response); - // 处理请求 - filterChain.doFilter(requestWrapper, responseWrapper); - - // 获取请求体数据 - requestLog.put("requestBody", getContent(requestWrapper.getContentAsByteArray())); - // 记录请求日志 - saveLog(logTrack, LogBusBaseType.HTTP_REQUEST, requestLog); - - // 获取响应头信息 - JSONObject responseHeaders = getResponseHeaders(responseWrapper); - // 获取响应体数据 - Object respData; + // 是否忽略响应体 if (PathPatternUtils.match(RESP_WHITE_LIST, uri)) { - respData = "ignore"; + // 处理请求 + filterChain.doFilter(requestWrapper, response); + // 获取请求体数据 + requestLog.put("requestBody", getContent(requestWrapper.getContentAsByteArray())); + // 记录请求日志 + saveLog(logTrack, LogBusBaseType.HTTP_REQUEST, requestLog); + // 停止计时 + sw.stop(); + // 保存日志 + JSONObject responseLog = JSONObject.of( + "responseBody", "ignore", + "execTime", sw.getTotalTimeMillis() + ); + saveLog(LogTrackHolder.get(), LogBusBaseType.HTTP_RESPONSE, responseLog); } else { - // 获取响应内容 - respData = getContent(responseWrapper.getContentAsByteArray()); + // 包装响应 + ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response); + // 处理请求 + filterChain.doFilter(requestWrapper, responseWrapper); + // 获取请求体数据 + requestLog.put("requestBody", getContent(requestWrapper.getContentAsByteArray())); + // 记录请求日志 + saveLog(logTrack, LogBusBaseType.HTTP_REQUEST, requestLog); + // 获取响应头信息 + JSONObject responseHeaders = getResponseHeaders(responseWrapper); + // 获取响应体数据 + Object respData = getContent(responseWrapper.getContentAsByteArray()); + // 将内容复制回原始响应 + responseWrapper.copyBodyToResponse(); + // 停止计时 + sw.stop(); + // 保存日志 + JSONObject responseLog = JSONObject.of( + "headers", responseHeaders, + "responseBody", respData, + "execTime", sw.getTotalTimeMillis() + ); + saveLog(LogTrackHolder.get(), LogBusBaseType.HTTP_RESPONSE, responseLog); } - - // 将内容复制回原始响应 - responseWrapper.copyBodyToResponse(); - - // 停止计时 - sw.stop(); - - // 保存日志 - JSONObject responseLog = JSONObject.of( - "headers", responseHeaders, - "responseBody", respData, - "execTime", sw.getTotalTimeMillis() - ); - saveLog(LogTrackHolder.get(), LogBusBaseType.HTTP_RESPONSE, responseLog); } /**