【问题标题】:Logging incoming and outgoing HTTP REST request/response in Spring/Tomcat在 Spring/Tomcat 中记录传入和传出的 HTTP REST 请求/响应
【发布时间】:2017-02-12 10:23:01
【问题描述】:

我有一个 Spring REST 服务,有时当我请求 REST 服务时,我得到一个 HTTP 401。我正在调查这个问题,这是间歇性的,不会一直发生。 (这是我每次发送的相同请求)。我还集成了 swagger 以提供 REST 文档。 我正在将我的 spring REST 服务作为 web 应用程序部署到 Tomcat 7。

  1. 如何记录传入和传出的 HTTP 请求,即使该请求是未经身份验证的请求。我希望能够绑定所有传入请求及其相应的传出响应。这也是我想推广到生产应用程序中的东西。

  2. 在 Spring 中的 REST 服务日志记录方面,我可以采用哪些最佳实践,我可以使用 Spring 或 Tomcat 提供的任何功能来更好地进行日志记录和调查?

谢谢

【问题讨论】:

标签: spring rest tomcat logging spring-4


【解决方案1】:

也许最好的方法是将Logging framework 与自定义javax.servlet.Filter 结合使用。它可以与您在应用程序中使用的其他环境(例如 Spring MVC 或 Struts)分开跟踪所有 HTTP 请求/响应。

重要的是,在这种情况下,日志记录必须与其他日志分开工作 应用程序的一部分,否则它将依赖于某些组件,并且不能按原样反映真正的低级事件,或者根本可以被破坏。

我可以建议您使用 Logback,因为它具有开箱即用的组件,可以满足您的需求。

使用Logback 配置您的WEB 应用程序可能如下所示:

web.xml

<filter>
  <filter-name>TeeFilter</filter-name>
  <filter-class>ch.qos.logback.access.servlet.TeeFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>TeeFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

更多详情请见Logback documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 2017-12-18
    相关资源
    最近更新 更多