Log4j2 Silence特定包

时间:2014-01-24 07:22:30

标签: java xml tomcat log4j2 jersey-2.0

我刚刚更新到Log4。现在我有一些小问题配置我的新设置。

log4j2.xml非常小而且简单,但我不知道如何为所有球衣包禁用日志(或至少将它们设置为ERROR)。

这是我的log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
        </Console>
        <File name="FILE" fileName="/logs/m2m/error.log">
            <PatternLayout pattern="%d %p %c{1.} [%t] %m%n" />
        </File>
        <Async name="ASYNC">
            <AppenderRef ref="FILE" />
            <AppenderRef ref="CONSOLE" />
        </Async>
    </Appenders>
    <Loggers>
        <Logger name="org.glassfish.jersey.servlet" level="ERROR" additivity="false">
            <AppenderRef ref="ASYNC" />
        </Logger>   
        <Root level="DEBUG">
            <AppenderRef ref="ASYNC" />
        </Root>
    </Loggers>
</Configuration>

这是我尝试沉默的日志输出:

Jan 24, 2014 8:21:12 AM org.glassfish.jersey.servlet.WebComponent filterFormParameters
WARNING: A servlet request to the URI #### contains form parameters in the request body but the request body has been consumed by the servlet or a servlet filter accessing the request parameters. Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

由于

2 个答案:

答案 0 :(得分:2)

根据输出的格式,我怀疑上面显示的日志输出实际上是由JUL(java.util.logging)而不是log4j生成的。

可以将对java.util.logging API的调用路由到log4j2实现。您的log4j2配置(看起来正确)应该过滤掉org.glassfish.jersey.servlet包中任何类发出的WARN级日志事件。

这涉及向类路径添加更多jar:请参阅FAQ

答案 1 :(得分:0)

如果您想使用Logback,我在这里解释如何操作:

Excessive warning messages from Jersey 2.x