如何在Jersey 2.x中禁用日志记录

时间:2015-02-24 21:09:47

标签: java jersey client-server jersey-2.0 grizzly

目前我正在运行Jersey 2.14(以及Grizzly 2.16),但我不会发现新版本/旧版本在日志记录方面存在很大差异。

我尝试禁用以下消息:

INFO: 2 * Server responded with a response on thread Grizzly-worker(15)
2 < 201
2 < Location: somewhere

每当我做的时候,生产环境中的任何事情都可以。我甚至有一个我认为会隐藏客户端和服务器方法的准系统类:

@Provider
public class MyLoggingFilter extends LoggingFilter
{
    @Override
    public void filter(ClientRequestContext context) throws IOException
    {
        // Do nothing.
        //super.filter(context);
    }
}

@Provider
public class MyLoggingFilter extends LoggingFilter
{
    @Override
    public void filter(ContainerRequestContext context) throws IOException
    {
        // Do nothing.
        //super.filter(context);
    }
}

应该注意的是,正如我通过跟踪语句发现的那样,这些方法受到了冲击。

是否有某些ServerProperty或其他可切换的选项,我没有看到它对此负责,所以我可以在制作期间将其关闭?

谢谢!

2 个答案:

答案 0 :(得分:1)

我找到了解决方案: 因为

@Provider

装饰,LoggingFilter正在自动注册。通过删除它,我能够控制日志记录,从而禁用日志消息。

答案 1 :(得分:0)

检查您的web.xml和/或Application类。如果在web.xml中添加泽西日志过滤器将是:

  <init-param>
            <param-name>jersey.config.server.provider.classnames</param-name>
            <param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
        </init-param>

如果配置为Application类,它将包含在扩展org.glassfish.jersey.server.ResourceConfig的类中。