请求响应日志是日常开发调试定位问题的重要手段,在微服务中引入SpringCloud Gateway后我们希望在网关层统一进行日志的收集。
本节内容将实现以下两个功能:
-
获取请求的输入输出参数,封装成自定义日志
-
将日志发送到MongoDB进行存储
获取输入输出参数
-
首先我们先定义一个日志体
@Data
public class GatewayLog {
/**访问实例*/
private String targetServer;
/**请求路径*/
private String requestPath;
/**请求方法*/
private String requestMethod;
/**协议 */
private String schema;
/**请求体*/
private String requestBody;
/**响应体*/
private String responseData;
/**请求ip*/
private String ip;
/**请求时间*/
private Date requestTime;
/**响应时间*/
private Date responseTime;
/**执行时间*/
private long executeTime;
}
-
【关键】在网关定义日志过滤器,获取输入输出参数
/**
* 日志过滤器,用于记录日志
* @author jianzh5
* @date 2020/3/