GlobalSettings.onError で捕らえられない例外の処理方法
play framework (2.3) で、例外の補足を総合的にとらえる方法は無いでしょうか?
通常のリクエスト処理中の例外は GlobalSettings.onError で捕らえられますが、
def action = Action{
Ok.chunked(Enumerator.outputStream(o => csvWrite(o)) >>> Enumerator.eof)
}
def csvWrite(o:OutputStream) = throw new Exception()
のように Enumerator.outputStream などを使って非同期で書き出ししたい場合など、その内部(上の例だとcsvWrite)で例外が起こった場合、コンソールにdebugレベルでエラーが記述されるだけです。
やりたいことは、例外をキャッチしてエラーレベルでスタックトレース付きのログを吐きたい(そしてアラートメールなどを出したい)のです。もちろん個別に try-catch して処理することはできますが、どこかで忘れそう。なので、アプリケーション全体で一つ(あるいはいくつか)設定すれば大丈夫みたいな仕組みを探しているのですが、ありますでしょうか?