【发布时间】:2017-05-11 17:34:33
【问题描述】:
我想在 ZUUL 中使用 debugFilter。当我在查询字符串中发布参数“debug=true”时,我在标准输出中找不到调试信息。
在哪里可以找到调试信息?
【问题讨论】:
标签: netflix-zuul
我想在 ZUUL 中使用 debugFilter。当我在查询字符串中发布参数“debug=true”时,我在标准输出中找不到调试信息。
在哪里可以找到调试信息?
【问题讨论】:
标签: netflix-zuul
如果使用参数debug=true调用api,调试信息将累积到RequestContext,键为routingDebug。该值为List<String> 类型。
如果您设置如下属性,调试信息将被添加到 response-header - X-Zuul-Debug-Header。
zuul.include-debug-header=true
据我所知,默认情况下,此信息不会打印到标准输出。
相反,您可以通过com.netflix.zuul.context.Debug.getRoutingDebug() 轻松访问此信息。
您可以制作自己的帖子过滤器以轻松打印出此信息,如下所示。
@Override
public boolean shouldFilter() {
return Debug.debugRouting();
}
@Override
public Object run() {
String debug = convertToPrettyPrintString(Debug.getRoutingDebug());
log.info("Filter Debug Info = \n{}", debug);
// or System.out.println(...)
return null;
}
private String convertToPrettyPrintString(List<String> filterDebugList) {
return filterDebugList.stream()
.map(s -> s.startsWith("{") ? "\t" + s : s)
.collect(Collectors.joining("\n"));
}
【讨论】:
?debug=true?请参考此链接:github.com/spring-cloud/spring-cloud-netflix/issues/1691