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

时间:2017-07-03 18:30:51

标签: logging log4j2

如何根据邮件内容过滤 Log4j2 邮件?

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

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

但是我根本不会得到任何弃用警告,它们通常很有用。我想删除那个(因为我无法修复它,它们由数千个发布)。请注意这是一个Log4j2问题,而不是Hibernate问题。

1 个答案:

答案 0 :(得分:2)

哎呀,好像我回答了自己,我不知道我错过了这个RegexFilter

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