【问题标题】:Java Spring Boot - logging response with payloadsJava Spring Boot - 使用有效负载记录响应
【发布时间】:2017-11-30 06:19:12
【问题描述】:

我目前正在使用 Spring Boot 将请求/响应日志记录集成到 REST 服务中。对于请求,我选择了 Spring 提供的 CommonsRequestLoggingFilter:

@Bean
public CommonsRequestLoggingFilter requestLoggingFilter() {
    CommonsRequestLoggingFilter loggingFilter = new CommonsRequestLoggingFilter();
    loggingFilter.setIncludeClientInfo(false);
    loggingFilter.setIncludeQueryString(true);
    loggingFilter.setIncludePayload(true);
    loggingFilter.setMaxPayloadLength(1024);

    return loggingFilter;
}

并且在配置文件中:

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter=DEBUG

但是,对于响应,似乎没有相应的类?在 Spring 中是否有类似的方法来记录服务器响应?

编辑: 具体来说,我在上述设置中看到的在 BeforeRequest 中什么都没有:

2017-06-28 09:32:32.258 DEBUG 22872 --- [http-nio-8081-exec-2] o.s.w.f.CommonsRequestLoggingFilter      : Before request [uri=/someApp/someObject]

作为 AfterRequest 的请求负载:

2017-06-28 09:32:32.272 DEBUG 22872 --- [http-nio-8081-exec-2] o.s.w.f.CommonsRequestLoggingFilter      : 
After request [uri=/someApp/someResource;payload={
  "someObject":   {
                    "lastName": "Doe",
                    "reference": "123456789"
              }
    }
]

而实际的响应不在日志中。

【问题讨论】:

    标签: java spring rest logging


    【解决方案1】:

    如果您需要监控和管理您的应用,请考虑使用actuator。它能够开箱即用地记录请求\响应。

    【讨论】:

    • 我明白了。正确激活此功能的任何指示?我目前看到负载记录为“AfterRequest”条目的请求,但响应无处可寻。
    • AbstractRequestLoggingFilter 可以记录处理前后的请求,但不记录响应。
    【解决方案2】:

    没关系,

    我最终实现了自己的过滤器,它也可以记录响应。基于 GenericFilterBean,包装 HttpResponse 和 HttpRequest,因此流不会被关闭。

    Spring 提供了一个用于记录请求的类,但不用于响应...

    【讨论】:

    • 如果您还发布您实现的 LoggingFilter 的代码,它将非常有用。
    • @PratikSinghal 示例使用(扩展)过滤器将响应与正文一起记录:stackoverflow.com/a/3242482/885922
    【解决方案3】:

    您可以尝试在 application.properties 中设置以下行来记录请求/响应

    logging.level.org.springframework.ws.server.MessageTracing.sent=TRACE
    

    【讨论】:

      猜你喜欢
      • 2017-08-07
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 2021-02-10
      • 2020-12-01
      • 2019-04-03
      • 2020-03-24
      • 1970-01-01
      相关资源
      最近更新 更多