2014-01-24 45 views
3

我刚更新到Log4。现在我有一些小问题正在配置我的新设置。Log4j2沉默特定软件包

该log4j2.xml是相当小和简单,但我不知道如何我可以禁用日志(或至少将它们设置为错误)所有运动衫包。

这里是我的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

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

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

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

+0

我试图添加七月到SLF4J LIB但它并没有改变任何东西。下面是我在lib文件夹中实际具有的库:log4j-1.2-api-2.0.jar log4j-api.jar log4j-slf4j-impl.jar log4j.jar slf4j-api.jar jul-to-slf4j-1.7.5。 jar – mikepenz

+0

如果log4j.jar是旧的log4j-1.2.x,它应该被删除。此外,你似乎错过了log4j-core-2.0.jar。 –

+0

嘿。感谢你的回答。我已经从所有这些库中删除了版本号2.0。因此,无需再次更改构建路径就可以轻松更新它们。 我能解决我的问题。问题是我们内部使用的子库有使用的slf4j-simple lib。这造成了一些问题。但你的回答是正确的。谢谢 – mikepenz