From 6d3028b6f6398fe2886fb6d597364938926445e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=9D=E5=85=88=E7=91=9E?= <1490493387@qq.com> Date: Thu, 5 May 2022 19:20:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BD=91=E5=85=B3?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=AF=B7=E6=B1=82=E7=B1=BB=E5=9E=8B=E4=B8=BA?= =?UTF-8?q?application/json=E4=B8=8D=E6=89=93=E5=8D=B0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/youlai/gateway/log/LogFilter.java | 16 +++++++++++++--- .../java/com/youlai/gateway/log/TraceLog.java | 11 +++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/youlai-gateway/src/main/java/com/youlai/gateway/log/LogFilter.java b/youlai-gateway/src/main/java/com/youlai/gateway/log/LogFilter.java index 8c0bdbc6..980bc2f0 100644 --- a/youlai-gateway/src/main/java/com/youlai/gateway/log/LogFilter.java +++ b/youlai-gateway/src/main/java/com/youlai/gateway/log/LogFilter.java @@ -87,7 +87,7 @@ public class LogFilter implements GlobalFilter, Ordered { sb.append(entry.getKey()).append("=").append(val).append("&"); } if (sb.length() > 0) { - traceLog.setRequestBody(sb.substring(0, sb.length() - 1)); + traceLog.setQueryParams(sb.substring(0, sb.length() - 1)); } log.info(traceLog.toRequestString()); ServerHttpResponseDecorator serverHttpResponseDecorator = serverHttpResponseDecorator(exchange, traceLog); @@ -110,11 +110,21 @@ public class LogFilter implements GlobalFilter, Ordered { ServerRequest serverRequest = ServerRequest.create(exchange, messageReaders); + MultiValueMap queryParams = exchange.getRequest().getQueryParams(); + + StringBuilder sb = new StringBuilder(); + for (Map.Entry> entry : queryParams.entrySet()) { + String val = entry.getValue().stream().map(String::valueOf).collect(Collectors.joining(",")); + sb.append(entry.getKey()).append("=").append(val).append("&"); + } + if (sb.length() > 0) { + traceLog.setQueryParams(sb.substring(0, sb.length() - 1)); + } + Mono cachedBody = serverRequest.bodyToMono(String.class).flatMap(body -> { traceLog.setRequestBody(body); - log.info(traceLog.toRequestString()); return Mono.just(body); - }); + }).doFinally(body -> log.info(traceLog.toRequestString())); BodyInserter bodyInserter = BodyInserters.fromPublisher(cachedBody, String.class); HttpHeaders headers = new HttpHeaders(); diff --git a/youlai-gateway/src/main/java/com/youlai/gateway/log/TraceLog.java b/youlai-gateway/src/main/java/com/youlai/gateway/log/TraceLog.java index d1eb0fd8..48d3a767 100644 --- a/youlai-gateway/src/main/java/com/youlai/gateway/log/TraceLog.java +++ b/youlai-gateway/src/main/java/com/youlai/gateway/log/TraceLog.java @@ -22,7 +22,13 @@ public class TraceLog { private String requestMethod; /** - * 请求实体 + * 查询参数 + */ + private String queryParams; + + + /** + * 请求体参数 */ private String requestBody; @@ -50,7 +56,8 @@ public class TraceLog { public String toRequestString() { return "^^^^^^^^请求日志^^^^^^^^: " + requestMethod + ':' + requestPath + '\n' + - "请求参数:" + requestBody + '\n' + + "查询参数:" + queryParams + '\n' + + "请求载荷:" + requestBody + '\n' + "请求时间:" + requestTime; } -- GitLab