2017-05-11 148 views

回答

1

如果您通過參數debug=true調用api,調試信息將通過密鑰routingDebug累積到RequestContext中。值爲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")); 
} 
+0

非常明確的答案。非常感謝 –

+0

zuul.include-debug-header = true不起作用。 –

+0

它應該工作。您是否在請求中添加了'?debug = true'?請參閱此鏈接:https://github.com/spring-cloud/spring-cloud-netflix/issues/1691 –

相關問題