Jersey 响应日志记录过滤器,不包括 GET 的响应主体
Jersey response logging filter excluding response body for GET
我正在使用 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>
我认为您可以像这样扩展过滤器:
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>
我正在使用 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>
我认为您可以像这样扩展过滤器:
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>