想定外の例外をログ出力するのに必要だったので、
SpringBootで/errorに対応する自作Controllerを作成する方法を調べた。
下記URLの通りにやれば可能。
https://www.logicbig.com/tutorials/spring-framework/spring-boot/implementing-error-controller.html
URLがリンク切れになった時ようにソースをコピペしておく。
@Controller
public class MyCustomErrorController implements ErrorController {
@RequestMapping("/error")
@ResponseBody
public String handleError(HttpServletRequest request) {
Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
Exception exception = (Exception) request.getAttribute("javax.servlet.error.exception");
return String.format("<html><body><h2>Error Page</h2><div>Status code: <b>%s</b></div>"
+ "<div>Exception Message: <b>%s</b></div><body></html>",
statusCode, exception==null? "N/A": exception.getMessage());
}
@Deprecated
@Override
public String getErrorPath() {
return "/error";
}
}
APIの例外ハンドリングの情報は多いけど、この情報はなかなか出てこなかった。。
getErrorPathに@DeprecatedがないとGradleタスクのbootjar実行時にエラーになる
https://qiita.com/sakazoo/items/b4c9ae140df9d26e816f