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); } /**