Quel enregistreur est-ce que je liste dans mon fichier log4j.xml pour intercepter les exceptions non gérées 2?Log4j Logger for Struts 2 Intercepteur d'exception
Je le code suivant déclaré dans mon struts.xml:
<package name="default" extends="struts-default">
<interceptor-stack name="defaultStack">
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
<interceptor-ref name="exception">
<param name="logEnabled">true</param>
<param name="logCategory">error.unhandled</param>
<param name="logLevel">WARN</param>
</interceptor-ref>
</interceptor-stack>
</package>
Dans mon dossier log4j.xml, j'ai l'enregistreur suivant déclaré:
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%c] - %C{1}.%M(%L) | %m%n"/>
</layout>
</appender>
<logger name="error.unhandled">
<level value="DEBUG"/>
<appender-ref ref="CONSOLE" />
</logger>
Cependant, lorsque Struts jette un exception, il n'est pas correctement enregistré par log4j. Je sais que mon fichier log4j.xml est analysé correctement car je peux créer manuellement une classe Java avec un enregistreur appelé "error.unhandled" et y écrire des messages de niveau ERROR. Un collègue a également suggéré que je devrais essayer de piéger le log4j.logger.error.unhandled logger mais cela ne fonctionnait pas non plus.
Quel enregistreur Struts 2 utilise-t-il pour l'intercepteur d'exceptions?
Pouvez-vous enregistrer manuellement quelque chose au niveau WARN et l'afficher dans le journal? – skaffman
Quel type de conteneur déployez-vous? (c'est-à-dire Tomcat, JBoss, WebSphere) –