0

環境:JSF 2.0、RichFaces 3.3.3、Facelets 1.1.15B1、Spring Framework 3.x、WebFlow 2.1、MyBatis 3.0.1、Oracle 10/11 gバックエンド、SLF4jからLog4jへ。私の問題はロギングの問題にすぎないので、おそらくTMIですが、徹底しすぎる方がよいでしょう。

とにかく...私はSLF4jとlog4jをセットアップしたので、すべての内部ファセットログメッセージがlog4jにダンプされ、実際にそれらを見ることができます。さらに、カスタムバージョンのJULIではなくlog4jにもダンプするようにTomcatを設定しました。これを行うと、アプリをシャットダウンするまで、すべてがうまく機能しているように見えました。

シャットダウンプロセスの途中で、SpringがロガーBeanをクリーンアップした後、Tomcatがロガーインスタンスを取得しようとしているため、アプリはエラーを左から右にバーフィングし始めました。

これに精通している人はいますか?非標準のロギングメカニズムを使用しているTomcatを持っている人にとっては、これは一般的な問題であるに違いないと思います。これを回避する最善の方法は何ですか?

ログレベルを上げただけでは、Tomcatはレベルreq.sのためにメッセージをログに記録しようとさえしないだろうと思いましたが、tomcatがロガーインスタンスを取得しようとしたときに問題が発生し、それが機能しませんでした。

4

1 に答える 1

1

ロガーを食物連鎖の上位に移動します。

私は個人的に、独自の構成メカニズムに依存してSpringでlog4jを構成したことはありません(そして、プロセスで使用しているプロパティファイルがどこにあるかを探します)。

可能であれば、log4jを戦争から完全に削除し、共通のTomcatライブラリクラスパスのlog4jに依存することを選択できます。そしてもちろん、あなたはTomcat構成に翻弄され、アプリ内からログにアクセスすることはできませんが、アプリのライフサイクル全体を通して常にログにアクセスできます。

于 2010-08-18T17:38:53.133 に答える