3 votes

Comment migrer ExpressionFilter vers log4j2 ?

Nous sommes en train de migrer de log4j 1.x vers log4j 2.x et le format du fichier de configuration a considérablement changé. Actuellement, nous avons ces filtres sur l'un de nos appenders :

<filter class="org.apache.log4j.filter.ExpressionFilter">
    <param name="Expression" value="EXCEPTION ~= 'HTTP upgrade is not supported by the AJP protocol'" />
    <param name="AcceptOnMatch" value="false"/>
</filter>
<filter class="org.apache.log4j.filter.ExpressionFilter">
    <param name="Expression" value="CLASS ~= 'org.atmosphere.container.JSR356Endpoint'" />
    <param name="AcceptOnMatch" value="false"/>
</filter>

Elles sont destinées à masquer ces deux types de messages dans le journal ; le premier par le contenu de la raison de l'exception levée, et le second par la classe du logger. Dans le cas de ce dernier, je sais qu'il semble que nous aurions pu simplement définir un paramètre Logger pour cette classe et la désactiver, mais cela n'a pas fonctionné -- peut-être que cette classe tierce remplace la configuration du journal au moment de l'exécution.

Quoi qu'il en soit, j'essaie de trouver comment les faire migrer vers log4j2, puisqu'il ne semble plus y avoir d'option de migration vers log4j2. ExpressionFilter . Votre aide est appréciée !

Merci.

2voto

Vikas Sachdeva Points 3081

Pour le filtrage du premier type de message, à savoir filtrage par contenu vous pouvez utiliser RegexFilter -

<Filters>
    <RegexFilter regex="(?s).*?HTTP upgrade is not supported by the AJP protocol.*?" onMatch="DENY" onMismatch="ACCEPT" />
</Filters>

Pour le filtrage du deuxième type, c'est-à-dire filtrage par type vous pouvez configurer Logger pour désactiver la journalisation de cette classe -

  <Logger name="org.atmosphere.container.JSR356Endpoint" level="OFF" additivity="false">
         <!--Write loggers here-->
   </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