Back-End/SpringBoot
[SpringBoot] e.getStackTrace() 출력 결과 차이
코딩콩
2022. 8. 11. 17:07
- log.error("stackTrace={}", e.getStackTrace());
에러내용
stackTrace=kr.co.test.controller.TestController.responseFail2(TestController.java:24)
기존에 getStackTrace하면 이렇게 간단하게만 나온다.
- log.error("reason={}, stackTrace={}", e.getCause(), e.getStackTrace());
에러내용
reason= null, stackTrace=[kr.co.test.controller.TestController.responseFail2(TestController.java:24), java.base/
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), java.base/
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.base/
java.lang.reflect.Method.invoke(Method.java:567),
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205),
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150),
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117),
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895),
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808),
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87),
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067),
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963),
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006),
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909), javax.servlet.http.HttpServlet.service(HttpServlet.java:681),
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883), javax.servlet.http.HttpServlet.service(HttpServlet.java:764),
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227),
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162), org.apache.tomc…
getCause를 하고 났더니 getStackTrace 내용이 바꼈다.
- log.error("stackTrace={}, reason={}", e.getStackTrace(), e.getCause());
에러내용
stackTrace=[kr.co.test.TestController.responseFail2(TestController.java:24), java.base/
jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), java.base/
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.base/
java.lang.reflect.Method.invoke(Method.java:567),
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205),
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150),
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117),
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895),
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808),
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87),
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067),
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963),
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006),
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909), javax.servlet.http.HttpServlet.service(HttpServlet.java:681),
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883), javax.servlet.http.HttpServlet.service(HttpServlet.java:764),
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227),
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162), org.apache.tomcat.websocket.s…
그래서 getStackTrace를 먼저 해봤는데 똑같이 stack trace가 보인다.
- log.error("reason={}, stackTrace={}", e, e.getStackTrace());
에러내용
reason=java.lang.NullPointerException, stackTrace=[kr.co.oasisbusiness.pickpie.payment.controller.TestController.responseFail2(TestController.java:24),
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/
jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62), java.base/
jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43), java.base/
java.lang.reflect.Method.invoke(Method.java:567),
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205),
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150),
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117),
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895),
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808),
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87),
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067),
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963),
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006),
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909), javax.servlet.http.HttpServlet.service(HttpServlet.java:681),
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883), javax.servlet.http.HttpServlet.service(HttpServlet.java:764),
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227),
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.j…
이유는 모르겠지만 위 코드로 원하는 로그(e.printStackTrace()를 출력하고 싶었다.)를 얻었다.