系统在生产环境出现问题时,排查问题最好的方式就是查看日志了,日志的记录尽量详细,这样你才能快速定位问题。
如果需要在Zuul中进行详细的日志记录,这两种日志必不可少。
- API请求信息
- API响应信息
前面有介绍过如何获取请求信息,文章请查看《Spring Cloud Zuul过滤器获取请求参数问题》。
今天正好又有一位朋友问我如何获取响应的数据,抽时间给大家写篇文章简单分享下。
熟悉Zuul的朋友都知道,Zuul中有4种类型过滤器,每种都有特定的使用场景,要想记录响应数据,那么必须是在请求路由到了具体的服务之后,返回了才有数据,这种需求就适合用post过滤器来实现了。
这边给大家介绍两种方式获取响应数据:
第一种
try {
Object zuulResponse = RequestContext.getCurrentContext().get("zuulResponse");
if (zuulResponse != null) {
RibbonHttpResponse resp = (RibbonHttpResponse) zuulResponse;
String body = IOUtils.toString(resp.getBody());
System.err.println(body);
resp.close();
RequestContext.getCurrentContext().setResponseBody(body);
}
} catch (IOExc