2

一部の本では、追従モードが悪いと述べています。例外ログの重複を避けるために、再スローされた場合はすべての例外をログに記録しないでください。他の問題はありますか?

問題が存在する場合、再スロー時に例外をログに記録できない場合、私は混乱していますか?

または、ログに記録すると、誰もがログを生成するとログが多すぎて混乱します。

catch (NoUserException e) { 

    LOG.error("No user available", e); 

    throw new UserServiceException("No user available", e); 

} 

参照 http://today.java.net/pub/a/today/2006/04/06/exception-handling-antipatterns.html#logAndThrow

4

3 に答える 3

2

あなたが言及した本についてはよくわかりませんが、コードをデバッグしてバグの根本原因を見つけなければならない人として、後でログで可能な限り詳しく読みたいと思います最初にトリガーした場所へ。

于 2012-08-16T06:27:10.520 に答える
0

すべての LOG 機能には、そのログ メッセージを無効にするスイッチがあるため、予期しない例外である場合は、すべての例外をログに記録する必要があります。その例外が予想される場合、たとえば、文字列が数値であるかどうかを確認し、例外の結果を知りたい場合は、ログを作成する必要はありません。

于 2012-08-16T06:28:00.213 に答える
0

例外に関する限り、最も重要なログ メッセージはサービス層に配置する必要があります。重要なことは、スタック トレース全体を保持することです。これにより、何度か再スローした後でも問題を簡単に特定できます。いつでもすべてのレイヤーにログを配置し、特定のレイヤーのログ レベルを操作して、現在デバッグ中/作業中のレイヤーのログのみを表示できます。その他のログはOFFに設定できます。詳細については、お気に入りのロガーのドキュメントを参照してください。

于 2012-08-16T06:31:28.103 に答える