【问题标题】:Where can i find the debug information in zuul?我在哪里可以找到zuul中的调试信息?
【发布时间】:2017-05-11 17:34:33
【问题描述】:

我想在 ZUUL 中使用 debugFilter。当我在查询字符串中发布参数“debug=true”时,我在标准输出中找不到调试信息。

在哪里可以找到调试信息?

【问题讨论】:

    标签: netflix-zuul


    【解决方案1】:

    如果使用参数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"));
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 2017-06-12
    • 2017-07-27
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多