質問: Javaで例外をログに記録する? 私は、Javaアプリケーションでコモンズのログを使用しています。スタックトレースから例外をログに記録します。 ``` catch( Exception exception ) { logger.error( "FailedCreateActivityFunction Exception Occured : " , exception ); throw new EngineException( getMessage( ERROR_FailedCreateActivityFunction, FunctionName ), exception ); } ``` **これは例外を2回スローしますか?はいの場合はそれを修正する方法?** Whats the difference between using it as this way using **+ exception** instead of **, exception** ``` logger.error( "FailedCreateActivityFunction Exception Occured : " + exception ); ```
回答: いいえ、例外を二度スローしません。このコードはEngineExceptionのみをスローします。 あなたはロギングと例外のスローを避けるべきです。ログとスローは反パターンです。例外処理の詳細は、例外処理用の反パターンを参照してください。 エラーメソッドを実行する2つの方法の違いは次のとおりです。 * logger.error(String msg、Throwable t) - オブジェクトを渡すので、ロギングフレームワークはより多くの情報を持ち、完全なスタックトレースを表示できます。 * logger.error(String msg) - Stringを作成し、追加の情報はログフレームワークに渡されません。