From 68e5411860a664b08488dec03c83830ac3b32a88 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Fri, 7 Jun 2024 21:45:32 +0800 Subject: [PATCH] =?UTF-8?q?fix():=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/gateway/filter/log/AccessLog.java | 2 +- .../gateway/filter/log/AccessLogFilter.java | 37 +++++++++---------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLog.java b/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLog.java index 6eb34af..a6bb706 100644 --- a/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLog.java +++ b/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLog.java @@ -102,7 +102,7 @@ public class AccessLog { public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("请求简略信息", - StringUtils.format("[{}:{}:{}]-[{{}-{}}:{} ---> {}]",userId, userIp, traceId, schema, requestMethod, requestUrl,httpStatus) + StringUtils.format("[userId:[{}]-userIp:[{}]-traceId:[{}]] ---结果--- {{}-{}}:{} ---> {}",userId, userIp, traceId, schema, requestMethod, requestUrl,httpStatus) ) .append("路由", route) .append("查询参数", queryParams) diff --git a/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLogFilter.java b/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLogFilter.java index 4631190..6307684 100644 --- a/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLogFilter.java +++ b/cloud-gateway/src/main/java/com/muyu/gateway/filter/log/AccessLogFilter.java @@ -1,9 +1,6 @@ package com.muyu.gateway.filter.log; import cn.hutool.core.date.LocalDateTimeUtil; -import cn.hutool.core.map.MapUtil; -import cn.hutool.json.JSONUtil; -import com.alibaba.fastjson2.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.muyu.common.core.constant.SecurityConstants; import com.muyu.gateway.utils.WebFrameworkUtils; @@ -40,7 +37,6 @@ import reactor.core.publisher.Mono; import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; import java.util.List; -import java.util.Map; /** @@ -66,7 +62,7 @@ public class AccessLogFilter implements GlobalFilter, Ordered { @Override public int getOrder() { - return Ordered.HIGHEST_PRECEDENCE; + return -99; } @Override @@ -74,24 +70,25 @@ public class AccessLogFilter implements GlobalFilter, Ordered { // 将 Request 中可以直接获取到的参数,设置到网关日志 ServerHttpRequest request = exchange.getRequest(); // TODO traceId - AccessLog gatewayLog = new AccessLog(); - gatewayLog.setUserId(request.getHeaders().getFirst(SecurityConstants.DETAILS_USER_ID)); - gatewayLog.setRoute(WebFrameworkUtils.getGatewayRoute(exchange)); - gatewayLog.setSchema(request.getURI().getScheme()); - gatewayLog.setRequestMethod(request.getMethod().name()); - gatewayLog.setRequestUrl(request.getURI().getRawPath()); - gatewayLog.setQueryParams(request.getQueryParams()); - gatewayLog.setRequestHeaders(request.getHeaders()); - gatewayLog.setStartTime(LocalDateTime.now()); - gatewayLog.setUserIp(WebFrameworkUtils.getClientIP(exchange)); + AccessLog accessLog = AccessLog.builder() + .userId(request.getHeaders().getFirst(SecurityConstants.DETAILS_USER_ID)) + .route(WebFrameworkUtils.getGatewayRoute(exchange)) + .schema(request.getURI().getScheme()) + .requestMethod(request.getMethod().name()) + .requestUrl(request.getURI().getRawPath()) + .queryParams(request.getQueryParams()) + .requestHeaders(request.getHeaders()) + .startTime(LocalDateTime.now()) + .userIp(WebFrameworkUtils.getClientIP(exchange)) + .build(); // 继续 filter 过滤 MediaType mediaType = request.getHeaders().getContentType(); - if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType) - || MediaType.APPLICATION_JSON.isCompatibleWith(mediaType)) { // 适合 JSON 和 Form 提交的请求 - return filterWithRequestBody(exchange, chain, gatewayLog); - } - return filterWithoutRequestBody(exchange, chain, gatewayLog); + return MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType) || MediaType.APPLICATION_JSON.isCompatibleWith(mediaType) + ? + filterWithRequestBody(exchange, chain, accessLog) + : + filterWithoutRequestBody(exchange, chain, accessLog); } private Mono filterWithoutRequestBody(ServerWebExchange exchange, GatewayFilterChain chain, AccessLog accessLog) {