Como obtenho Jersey 2.2 (JAX-RS) para gerar saída de log, incluindo corpos de solicitação Json

Estou executando um Jersey 2.2 Servlet no Jetty 9.0.4 para servir solicitações REST.

Principalmente tudo é bom e pedidos são servidos, mas eu nunca viQUALQUER log das aulas de Jersey. E eu não consigo encontrar nenhum documento que indique que galinhas eu preciso sacrificar para que isso aconteça com Jersey 2.2

Então, minha primeira pergunta é: o que eu preciso fazer para que Jersey gere algum log.

Quando uma solicitação é executada incorretamente (por exemplo, porque o corpo da solicitação Json não pode ser analisado) Jersey lançará uma ContainerException com uma mensagem como "Não é possível desserializar a instância de java.util.ArrayList fora do token START_OBJECT" etc. estarrealmente Adorável ter registrado o corpo da solicitação de entrada para que eu possa inspecionar o Json. Mais uma vez, não consigo encontrar nada no documento atual descrevendo tal animal, embora tenha certeza de que existe um. E em qualquer caso até que eu resolva a questão 1 acima, é discutível.

Então, minha segunda pergunta é como faço para registrar o corpo da solicitação de entrada (sem interromper a solicitação).

A configuração Jersey Servlet no web.xml se parece com:

<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>

Meu JerseyApplication é:

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));
    }
}

questionAnswers(1)

yourAnswerToTheQuestion