前回Slim3でのエラーハンドリングについて書きましたが、
前回書いた内容だと、エラー時にエラーを表示せずに、特定の画面を表示することはできるものの
エラーの内容がサッパリになってしまいます。
エラーの内容も知るべきだねという時に
スタックトレースを文字列でLogに出力します。
private final static Logger LOG = Logger.getLogger(Hoge.class.getName());
protected Navigation handleError(Throwable error) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
error.printStackTrace(pw);
LOG.log(Level.WARNING,sw.toString());
return redirect("/error.jsp");
}
とりあえずこんな感じで出力出来ます。
上記だと出力レベルはERRORではなくWARNINGなのでお気を付けを。
ちなみにLOGに設定されているclass名がHogeなので、
使用する場合は実際のclass名に応じて変えて下さい。