0

暗黙的にエラーをキャッチしてエラーをログアウトせずに、エラーがどのようにログに記録されるかについて混乱しています。私が行ったのは、log4j.xml ファイルをプロジェクトに配置してアペンダーを定義することだけで、ログはフレームワークからすべてをキャッチしてログに記録します。Hibernate でクエリを実行しようとすると、クエリが失敗するか、存在しないファイルを開こうとするか、null ポインター例外が発生します。正しく設定されている場合、エラーはそこでキャプチャされますか?

Spring Web アプリは、キャッチしてログに記録しなかったエラーをどのようにキャプチャしますか? これは apache commons ロギングの結果ですか?

それとも、これはlog4jが対処する方法を知っている魔法ですか?コンソールなどへのストリームをキャッチしますか? どんな情報でも大歓迎です。

4

1 に答える 1

1

春の公式ドキュメントから:

commons-logging の良いところは、アプリケーションを機能させるために他に何も必要ないことです。クラスパス上のよく知られた場所で他のロギング フレームワークを探し、適切と思われるものを使用するランタイム検出アルゴリズムがあります (または、必要に応じてどのフレームワークかを伝えることができます)。他に何も利用できない場合は、JDK (java.util.logging または略して JUL) からかなり見栄えの良いログを取得できます。ほとんどの状況で、Spring アプリケーションが機能し、箱から出してすぐにコンソールに問題なくログを記録することがわかるはずです。これは重要なことです。


Log4j をデフォルトの JCL 依存関係 (commons-logging) で動作させるには、Log4j をクラスパスに配置し、構成ファイル (クラスパスのルートにある log4j.properties または log4j.xml) を提供するだけです。

完全な説明をご覧ください: http://static.springsource.org/spring/docs/3.0.x/reference/overview.html#d0e743

于 2012-07-30T18:37:53.123 に答える