我想在ZUUL中使用debugFilter。当我在查询字符串中发布param“debug = true”时,我在标准输出中找不到调试信息。
我在哪里可以找到调试信息?
答案 0 :(得分:2)
如果您使用param debug=true
调用api,调试信息将使用密钥RequestContext
累积到routingDebug
。值为List<String>
类型。
如果设置如下所示的属性,调试信息将添加到响应标头 - 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"));
}