Spring サービスからの RuntimeExceptions のログ記録に問題があります。
私の構成は次のとおりです。
瓶(Maven):
- commons-logging を除外しました
- クラスパスにlog4jとsl4jがあります
web.xml:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log4j.プロパティ:
log4j.rootLogger=INFO, infrastructure
log4j.appender.infrastructure=org.apache.log4j.FileAppender
log4j.appender.infrastructure.File=/opt/logs/infrastructure.log
log4j.appender.infrastructure.layout=org.apache.log4j.PatternLayout
log4j.appender.infrastructure.layout.ConversionPattern=%d{HH:mm:ss} (%t) %-5p [%c] - %m%n
そしてサービスメソッドで:
throw new IllegalStateException();
私はSpring MVCを使用していることに言及する必要があります。Spring のバージョンは 3.0.5 です。Web サーバーとしての Tomcat 7.0.11。
私の目標は、他の通常の例外と同じように IllegalStateException をログに記録することです-ログアペンダーに。グローバルな UncaughtExceptionHandler を登録する方法を探しましたが、見つからなかったので、ランタイム例外がログに記録されていないと思います。代わりに、標準出力に出力されています。
これを修正するにはどうすればよいですか? どんな助けでも大歓迎です。
オイゲン。