如何使用slf4j设置使单个特定日志行静音

oogrdqng  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(304)

我在运行mvn测试时得到以下日志行。我不想为此采取任何行动,因为它只是在h2数据库上运行测试。

WARN  org.hibernate.orm.connections - HHH10001002: Using Hibernate built-in connection pool (not for production use!)

我可以把下面这样的东西从整个包静音日志。

<Logger name="org.hibernate.orm.connections" level="fatal"/>

但我不希望整个班级或整个包裹都保持沉默。我只需要跳过打印特定的日志行。如何配置log4j2.xml文件?

rta7y2nd

rta7y2nd1#

正如fildor建议的那样,最好的办法是使用regexfilter。我要输入hh10001002。但我只会在org.hibernate.orm.connections日志下这样做。

<Logger name="org.hibernate.orm.connections" level="WARN">
   <RegExFilter regex="^HHH10001002: .*" onMatch="DENY" onMisMatch="NEUTRAL"/>
</Logger>

这只会使用该包下的记录器过滤消息,因此过滤的开销不会对应用程序产生太大影响。它将允许处于警告、错误或致命状态且与模式不匹配的消息通过,它们将通过其父配置的记录器(或根)路由到附加器。
(2016年5月11日编辑):在谷歌搜索了一下之后,我相信消息的文本实际上是以hh1001002:开头的,所以我编辑了上面的regex以匹配。但我不确定记录器名称是否正确。您应该检查%c是否在patternlayout的模式中。如果不是,您可能需要添加它来确定要使用的实际记录器名称。

相关问题