かなり単純な問題のように思えますが、Scalatra のトップ レベルのエラー ハンドラーがトリガーされたときにスタック トレースをログに記録したいと考えています。次のような些細なことをして、メソッドの1つで意図的に例外をスローしています。
throw new IllegalArgumentException
エラー ハンドラでは、コードは次のようになります。
error {
case e => {
val logger = LoggerFactory.getLogger(getClass)
logger.info("an exception occurred: " + e.getStackTrace())
logger.info("the request body is: " + request)
NotFound("An error occurred, please contact support")
}
}
エラー ハンドラー自体は Scalatra 固有のものですが、私が探している答えは、バニラの Scala 手法を使用して解決できると確信しています。この時点でスタックトレースを取得するためにできることはありますか? リクエストがエラー ハンドラと同じスレッド上にあるかどうかはわかりません。e.getStackTrace()
私にくれます[Ljava.lang.StackTraceElement;@1f6b6954
ひどいコードのエラーを修正するためにログに記録して確認できるように、ここでスタック トレースを出力する最良の方法は何ですか?