1

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 を登録する方法を探しましたが、見つからなかったので、ランタイム例外がログに記録されていないと思います。代わりに、標準出力に出力されています。

これを修正するにはどうすればよいですか? どんな助けでも大歓迎です。

オイゲン。

4

1 に答える 1

0

HandlerExceptionResolverを使用します。

例外処理に関する Spring MVC リファレンス を参照してください。

于 2011-03-26T19:41:35.910 に答える