提交 6d3028b6 编写于 作者: 郝先瑞

fix: 修复网关日志请求类型为application/json不打印查询参数问题

上级 3e23004c
......@@ -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<String, String> queryParams = exchange.getRequest().getQueryParams();
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, List<String>> 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<String> 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();
......
......@@ -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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册