Który logger mam wyświetlić w pliku log4j.xml, aby przechwycić nieobsługiwane wyjątki struts 2?Log4j Logger for Struts 2 Exceptor Interceptor
Mam następujący kod zadeklarowane w moim 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>
W moim pliku log4j.xml, mam następujący rejestrator oświadczył:
<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>
Jednak gdy Struts Zgłasza wyjątek, nie jest poprawnie rejestrowany przez log4j. Wiem, że mój plik log4j.xml jest poprawnie przetwarzany, ponieważ mogę ręcznie utworzyć klasę języka Java za pomocą programu rejestrującego o nazwie "error.unhandled" i bezpośrednio do niego pisać komunikaty poziomu ERROR. Kolega zasugerował również, że powinienem spróbować przechwycić log4j.logger.error.unhandled logger, ale to też nie działa.
Który program rejestrujący używa Struts 2 do przechwytywania wyjątków?
Czy możesz ręcznie zarejestrować coś na poziomie WARN i czy jest ono widoczne w dzienniku? – skaffman
Do jakiego rodzaju konteneru chcesz wdrożyć? (Tomcat, JBoss, WebSphere) –