在 Log4j2 中,如何避免记录包含特定文本的消息?



如何根据消息内容过滤掉Log4j2消息?

例如,我不想记录包含文本的休眠消息:HHH90000022: Hibernate's legacy org.hibernate.Criteria API is deprecated; use the JPA javax.persistence.criteria.CriteriaQuery instead。当然,我可以禁用所有休眠弃用警告,如下所示:

<Logger name="org.hibernate.orm.deprecation" additivity="false" level="ERROR">
…
</Logger>

但是这样我就不会收到任何弃用警告,它们通常很有用。我只想删除那个(因为我无能为力来修复它,而且它们是由成千上万的人发布的(。请注意,这是一个 Log4j2 问题,而不是休眠问题。

哎呀,看来我回答了自己,我不知道我是如何错过这个RegexFilter的:

<Logger name="org.hibernate.orm.deprecation" additivity="false" level="WARN">
<RegexFilter regex=".*HHH90000022.*" onMatch="DENY" onMismatch="NEUTRAL"/>
…
</Logger>

最新更新