【问题标题】:Jersey response logging filter excluding response body for GETJersey 响应日志过滤器,不包括 GET 的响应正文
【发布时间】:2015-05-28 19:24:02
【问题描述】:

我正在使用 Jersey 和 Tomcat 开发 REST Web 服务器,并且我有 Jersey 日志过滤器来记录请求和响应。我的 web.xml 中有这个,它工作正常。

我想在记录 PUT 和 POST 的响应正文时禁用 GET 响应的记录响应正文。我该怎么做?

<init-param>
        <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
        <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
        <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.feature.logging.DisableEntitylogging</param-name>
        <param-value>false</param-value>
    </init-param>

【问题讨论】:

    标签: java tomcat logging jersey


    【解决方案1】:

    我认为你可以像这样扩展过滤器:

    public class MyFilter extends com.sun.jersey.api.container.filter.LoggingFilter {
    
    // other (maybe fundamental) code omitted for brevity
    
      @Override
      public ContainerRequest filter(ContainerRequest request) {
          if(!request.getMethod().equals("GET")) {
              return super.filter(request);   
          }
          return request;
      }
    
    }
    

    然后更改您的 web.xml 以使用它而不是

    <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-02
      • 2015-11-06
      • 1970-01-01
      • 2021-11-04
      • 2014-04-17
      • 2014-02-15
      • 2020-09-02
      • 1970-01-01
      相关资源
      最近更新 更多