我正在Jetty 9.0.4中运行Jersey 2.2 Servlet,以便提供REST请求. 
  
 
大多数情况下,一切都很好,请求得到满足,但从未见过泽西班的任何日志.我找不到任何doco,表明我需要牺牲什么鸡,以使泽西2.2发生
所以我的第一个问题是 – 我需要做些什么来让泽西生成一些日志.
当请求确实运行不正常(例如,因为Json请求体不能被解析)Jersey将抛出一个ContainerException,其消息就像“不能反序列化从//OBJECT令牌中的java.util.ArrayList的实例”等等.在这一点上真的可以记录传入的请求正文,以便我可以检查Json.再次,在目前的doco中找不到任何东西,概述了这样的一个野兽,虽然我确信有一个.在任何情况下,直到我解决上面的问题1它是愚蠢的.
所以我的第二个问题是如何记录传入的请求正文(不中断请求).
web.xml中的Jersey Servlet配置如下所示:
<servlet >
    <servlet-name>Jersey Servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>au.com.xandar.wirelesstiming.recorder.web.rest.JerseyApplication</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet> 
 我的泽西应用是:
public final class JerseyApplication extends ResourceConfig {
    public JerseyApplication() {
        super(
            //JacksonFeature.class   // Switching on Jackson
            // (My) JerseyLoggingFilter.class       // Log requests using Jersey ContainerRequestFilter 
            MyApplicationEventListener.class        // Log Requests using Jersey RequestEventListener
        );
        packages("au.com.xandar.wirelesstiming.recorder");
        // Enable LoggingFilter & output entity.
        // NB This does NOT generate any log.
        registerInstances(new LoggingFilter(Logger.getLogger(JerseyApplication.class.getName()),true));
    }
}
解决方法
 泽西本身不会记录太多.对于2.x,我们正在开发一种开发模式,其中包括跟踪支持(见 
 Tracing in Jersey),默认记录传入请求/传出响应(包括实体主体和跟踪消息).这个功能应该很快就会出来. 
  
 
        关于您的第二个问题 – 您可以注册能够记录传入请求/传出响应(方法,标题,..)以及实体主体(配置时)的LoggingFilter.您可以通过配置(第三个选项说明如何打开实体日志记录):
web.xml(将其添加到JAX-RS servlet定义):
<init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
    <param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
</init-param> 
 申请延期:
public class MyApplication extends Application {
    @Override
    public Set<Class<?>> getClasses() {
        return new HashSet<Class<?>>() {{
            // Add your resources.
            add(HelloWorldResource.class);
            // Add LoggingFilter.
            add(LoggingFilter.class);
        }};
    }
} 
 ResourceConfig实例(演示也在这里输出实体):
public class MyApplication extends ResourceConfig {
    public MyApplication() {
        // Resources - add your package name here to enable package scanning.
        packages(...);
        // Enable LoggingFilter & output entity.     
        registerInstances(new LoggingFilter(Logger.getLogger(MyApplication.class.getName()),true));
    }
}