目前我正在运行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或其他可切换的选项,我没有看到它对此负责,所以我可以在制作期间将其关闭?
谢谢!
答案 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的类中。