스프링부트 기본 에러페이지는 ‘whitelabel’ error page 이다. 이와 관련된 내용은 ErrorMvcAutoConfiguration 을 살펴보면 찾아볼 수 있다.
private final SpelView defaultErrorView = new SpelView("<html><body><h1>Whitelabel Error Page</h1>"+ "<p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p>"+ "<div id='created'>${timestamp}</div>"+ "<div>There was an unexpected error (type=${error}, status=${status}).</div>"+ "<div>${message}</div></body></html>");
이 기본적인 화이트레이블 페이지 대신에 사용자가 지정한 에러페이지로 변경이 가능하다. 이를 위해서는
server.error.include-stacktrace=never # When to include a "stacktrace" attribute.server.error.path=/error # Path of the error controller.server.error.whitelabel.enabled=true # Enable the default error page displayed in browsers in case of a server error.
위 세가지 속성에 대한 조작을 해야 한다. 우선 사용자지정 에러페이지를 사용하기 위해서는 화이트레이블 출력을 비활성화해야 한다.
server.error.whitelabel.enabled=false
로 변경한다. 그리고 에러페이지에서 발생한 에러의 스택트레이스를 출력하기 위해서는 server.error.include-stacktrace
을 never
이외의 것으로 변경해야 한다.
server.error.include-stacktrace=always or on_trace_param
이와 관련된 값은 ErrorProperties
를 살펴보면 된다.
사용가능한 속성들을 템플릿(Thymeleaf) 에 적용해본 예다.
StatusHouston, we have a problem([[${error}]])Error MessageReturn homeTime StampException nameTrace