Commit db8a61d7 authored by 赵啸非's avatar 赵啸非

修改网关日志

parent 356c858d
...@@ -39,7 +39,7 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.O ...@@ -39,7 +39,7 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.O
* @date: 2022/8/18 13:48 * @date: 2022/8/18 13:48
* @description: * @description:
**/ **/
@Component //@Component
@Slf4j @Slf4j
public class GatewayResponseFilter implements GlobalFilter, Ordered { public class GatewayResponseFilter implements GlobalFilter, Ordered {
......
...@@ -21,7 +21,7 @@ import reactor.core.publisher.Mono; ...@@ -21,7 +21,7 @@ import reactor.core.publisher.Mono;
* @author: zxfei * @author: zxfei
* @date: 2022/6/20 16:59 * @date: 2022/6/20 16:59
*/ */
@Component //@Component
@Slf4j @Slf4j
public class GlobalCacheRequestFilter implements GlobalFilter, Ordered { public class GlobalCacheRequestFilter implements GlobalFilter, Ordered {
...@@ -51,6 +51,6 @@ public class GlobalCacheRequestFilter implements GlobalFilter, Ordered { ...@@ -51,6 +51,6 @@ public class GlobalCacheRequestFilter implements GlobalFilter, Ordered {
@Override @Override
public int getOrder() { public int getOrder() {
return HIGHEST_PRECEDENCE; return -3;
} }
} }
...@@ -61,57 +61,63 @@ public class GlobalLogFilter implements GlobalFilter, Ordered { ...@@ -61,57 +61,63 @@ public class GlobalLogFilter implements GlobalFilter, Ordered {
private static final String START_TIME = "startTime"; private static final String START_TIME = "startTime";
private static final String TRACE_ID = "traceId"; private static final String TRACE_ID = "traceId";
private static final String SPAN_ID = "spanId";
private static final String PSPAN_ID = "pspanId";
@Override @Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
log.info("GlobalLogFilter:{}",getOrder()); log.info("GlobalLogFilter:{}",getOrder());
MDC.put("startTime", String.valueOf(System.currentTimeMillis()));
//保存请求链路,设置数据追踪id到header中 //保存请求链路,设置数据追踪id到header中
Integer pspanId = 0;
if (!customGatewayProperties.getRequestLog()) { Integer spanId = 1;
return chain.filter(exchange);
}
ServerHttpRequest request = exchange.getRequest();
String path = request.getPath().toString();
String method = request.getMethod().name();
//判断请求类型
String paramStr ="";
if (isJsonRequest(request)) {
//读取请求体后 内容需要重新设置进去
paramStr = resolveBodyFromRequest(request);
} else {
//非json类型,
MultiValueMap<String, String> parameterMap = request.getQueryParams();
paramStr=JSON.toJSONString(parameterMap);
}
String traceId = IdUtil.objectId(); String traceId = IdUtil.objectId();
AccessLogPdu accessLogPdu = new AccessLogPdu();
accessLogPdu.initAttrValue();
accessLogPdu.setAppName(appName);
accessLogPdu.setHostName(NetUtil.getLocalHostName());
accessLogPdu.setLogLevel("INFO");
accessLogPdu.setRequestIp(IpUtils.getRealIpAddress(exchange.getRequest()));
accessLogPdu.setRequestParam(paramStr);
accessLogPdu.setLogTime(new Date());
accessLogPdu.setMethod(method);
accessLogPdu.setUri(path);
accessLogPdu.setTraceID(traceId);
messageProducer.syncAccessSend(accessLogPdu);
exchange.getAttributes().put(START_TIME, System.currentTimeMillis());
ServerHttpRequest newRequest = exchange.getRequest().mutate() ServerHttpRequest newRequest = exchange.getRequest().mutate()
.header(TRACE_ID, traceId) .header(TRACE_ID, traceId)
.header(SPAN_ID, pspanId.toString())
.header(PSPAN_ID, spanId.toString())
.build(); .build();
return chain.filter(exchange.mutate().request(newRequest).build()); return chain.filter(exchange.mutate().request(newRequest).build());
//判断请求类型
// String paramStr ="";
// if (isJsonRequest(request)) {
// //读取请求体后 内容需要重新设置进去
// paramStr = resolveBodyFromRequest(request);
// } else {
// //非json类型,
// MultiValueMap<String, String> parameterMap = request.getQueryParams();
// paramStr=JSON.toJSONString(parameterMap);
// }
// AccessLogPdu accessLogPdu = new AccessLogPdu();
// accessLogPdu.initAttrValue();
// accessLogPdu.setAppName(appName);
// accessLogPdu.setHostName(NetUtil.getLocalHostName());
// accessLogPdu.setLogLevel("INFO");
// accessLogPdu.setRequestIp(IpUtils.getRealIpAddress(exchange.getRequest()));
// accessLogPdu.setRequestData(paramStr);
// accessLogPdu.setLogTime(new Date());
// accessLogPdu.setMethod(method);
// accessLogPdu.setUri(path);
// accessLogPdu.setTraceID(traceId);
// messageProducer.syncAccessSend(accessLogPdu);
//exchange.getAttributes().put(START_TIME, System.currentTimeMillis());
// ServerHttpRequest newRequest = exchange.getRequest().mutate()
// .header(TRACE_ID, traceId)
// .header(TRACE_ID, traceId)
// .header(TRACE_ID, traceId)
// .build();
//
// return chain.filter(exchange.mutate().request(newRequest).build());
} }
@Override @Override
public int getOrder() { public int getOrder() {
return 0; return -3;
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment