还原http日志采集

This commit is contained in:
2026-05-22 14:07:10 +08:00
parent 3fe9781e74
commit 9479071042

View File

@@ -108,45 +108,35 @@ public class HttpLogFilter extends BaseFilter implements Ordered, BaseParams {
// 获取请求日志节点 // 获取请求日志节点
LogTrack logTrack = LogTrackHolder.get(); LogTrack logTrack = LogTrackHolder.get();
// 包装请求 // 包装请求和响应
ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request, DEFAULT_CACHE_LIMIT); ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request, DEFAULT_CACHE_LIMIT);
// 是否忽略响应体
if (PathPatternUtils.match(RESP_WHITE_LIST, uri)) {
// 处理请求
if (!response.isCommitted()) {
filterChain.doFilter(requestWrapper, response);
}
// 获取请求体数据
requestLog.put("requestBody", getContent(requestWrapper.getContentAsByteArray()));
// 记录请求日志
saveLog(logTrack, LogBusBaseType.HTTP_REQUEST, requestLog);
// 停止计时
sw.stop();
// 保存日志
JSONObject responseLog = JSONObject.of(
"headers", getResponseHeaders(response),
"responseBody", "ignore",
"execTime", sw.getTotalTimeMillis()
);
saveLog(LogTrackHolder.get(), LogBusBaseType.HTTP_RESPONSE, responseLog);
} else {
// 包装响应
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response); ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
// 处理请求 // 处理请求
filterChain.doFilter(requestWrapper, responseWrapper); filterChain.doFilter(requestWrapper, responseWrapper);
// 获取请求体数据 // 获取请求体数据
requestLog.put("requestBody", getContent(requestWrapper.getContentAsByteArray())); requestLog.put("requestBody", getContent(requestWrapper.getContentAsByteArray()));
// 记录请求日志 // 记录请求日志
saveLog(logTrack, LogBusBaseType.HTTP_REQUEST, requestLog); saveLog(logTrack, LogBusBaseType.HTTP_REQUEST, requestLog);
// 获取响应头信息 // 获取响应头信息
JSONObject responseHeaders = getResponseHeaders(responseWrapper); JSONObject responseHeaders = getResponseHeaders(responseWrapper);
// 获取响应体数据 // 获取响应体数据
Object respData = getContent(responseWrapper.getContentAsByteArray()); Object respData;
if (PathPatternUtils.match(RESP_WHITE_LIST, uri)) {
respData = "ignore";
} else {
// 获取响应内容
respData = getContent(responseWrapper.getContentAsByteArray());
}
// 将内容复制回原始响应 // 将内容复制回原始响应
responseWrapper.copyBodyToResponse(); responseWrapper.copyBodyToResponse();
// 停止计时 // 停止计时
sw.stop(); sw.stop();
// 保存日志 // 保存日志
JSONObject responseLog = JSONObject.of( JSONObject responseLog = JSONObject.of(
"headers", responseHeaders, "headers", responseHeaders,
@@ -155,7 +145,6 @@ public class HttpLogFilter extends BaseFilter implements Ordered, BaseParams {
); );
saveLog(LogTrackHolder.get(), LogBusBaseType.HTTP_RESPONSE, responseLog); saveLog(LogTrackHolder.get(), LogBusBaseType.HTTP_RESPONSE, responseLog);
} }
}
/** /**
* 获取请求头信息 * 获取请求头信息