16

我正在尝试在我的 Spring Boot 项目中使用 Zuul。

应用程序属性

server.context-path=/${spring.application.name}
zuul.routes.engine.path=/api/engine/**
zuul.routes.engine.url=${engine.url}

GET请求有效;但是,Zuul 没有转发我的POST请求。我没有看到这里列出的GET或的任何调试输出:如何使用POST

如何DEBUG为 Zuul 启用日志记录模式?

4

5 回答 5

15

设置属性zuul.debug.request=true

于 2015-11-20T22:35:48.680 回答
10

Spencer 的回答不适用于我当前的 Zuul 版本(Spring Cloud Starter Zuul 1.4.6.RELEASE)。相反,起作用的是将以下日志记录属性添加到 application.yml

logging:
  level:
    org:
      springframework:
        cloud:
          netflix: trace
于 2019-05-23T06:08:59.730 回答
8

要在 Spring 应用程序中记录请求和响应,我成功使用了属性:

logging:
  level:
    org:
      apache:
        http:
          wire: debug
于 2019-09-05T19:48:47.453 回答
3

你需要两件事:

  1. 添加zuul.include-debug-header: true到您的application.yml文件中。
  2. 附加debug=true到您的请求,例如http://localhost:8080/api/user/1?debug=true

这样您将X-Zuul-Debug-Header在响应中收到调试数据

于 2019-08-01T11:18:42.757 回答
0

我们正在使用

spring-boot-2.3.3.RELEASE 
spring-cloud-netflix-zuul-2.2.4.RELEASE
zuul-core-1.3.1

我添加了

zuul:
  include-debug-header: true
  debug.request: true
  debugFilters.disabled: false

到我的 application.yml 文件。

我添加了

com.netflix.zuul.context.Debug.setDebugRequest(true);
com.netflix.zuul.context.Debug.setDebugRequestHeadersOnly(true);
com.netflix.zuul.context.Debug.setDebugRouting(true);

到我的过滤器的 doFilter() 方法之一:

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)

然后每个请求的响应都包含一个新的标头 X-Zuul-Debug-Header 以及运行以处理该请求的 zuul 过滤器列表。

于 2020-09-25T09:19:20.907 回答