2 votes

Dans Log4j2, comment éviter de journaliser les messages qui contiennent un certain texte ?

Comment puis-je filtrer Log4j2 les messages en fonction de leur contenu ?

Par exemple, je ne veux pas enregistrer les messages Hibernate qui contiennent le texte : HHH90000022: Hibernate's legacy org.hibernate.Criteria API is deprecated; use the JPA javax.persistence.criteria.CriteriaQuery instead . Bien sûr, je peux désactiver tous les avertissements de dépréciation d'Hibernate, comme ceci :

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

Mais alors je n'obtiendrai aucun avertissement de dépréciation, et ils sont généralement utiles. Je veux supprimer uniquement celui-là (parce qu'il n'y a rien que je puisse faire pour le corriger, et qu'ils sont émis par milliers). Veuillez noter qu'il s'agit d'une question sur Log4j2, et non sur Hibernate.

2voto

marcg Points 110

Oups, il semble que j'ai répondu moi-même, je ne sais pas comment j'ai pu manquer ça. RegexFilter :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X