f10024
70
2022-07-23 18:26:45
2
133

log4j2 exception 남기는 방법


안녕하세요 

파일에 exception에러를 남기는 방법을 찾고 있습니다.

log4j2 설정을 하다가 exception가 남지 않아 방법을 찾지못하겠네요.

logger.error 형식의 에러 말고

아래의 콘솔처럼 남길수 있는 방법이 있는지 아시는분 있으실까요?

시스템에서 에러난 부분을 찾고 싶은데 log4j 에 남지 않아 질문드립니다.

java.lang.NullPointerException
	at test.controller.AdminController.testAdmin(AdminController.java:734)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at test.comm.filter.CrossScriptingFilter.doFilter(CrossScriptingFilter.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:367)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:639)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:882)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1647)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
0
  • 답변 2

  • 카카오콘
    1k
    2022-07-23 20:31:49 작성 2022-07-23 20:39:51 수정됨

    log.error를 사용하실때 exception 내용까지 모두 뜨게 하면 됩니다.


    일단 당연하게 exception이 뜨는 상황에 그 메세지를 가져올 수 있는 상황에서

    (exception을 컨트롤하거나(RestControllerAdvice), try-catch거나)


    try {

    ... throw Nullpointer...

    }

    catch (NulPoint.. e) {

       log.error("null pointer error! : {}", e.getMessage, e);

    }


    이렇게 총 파라미터 "마지막에 추가로" 해당 exception 자체를 넘겨주면, 저 에러가 로그로 출력됩니다.

  • f10024
    70
    2022-07-24 16:35:50

    @카카오콘 

    답변 감사합니다.

    답변 주신 내용으로 지금 변경중 입니다.

    하나 추가적인 질문을 하자면 

    현재 @RestControllerAdvice 조합으로 처리시에 

    try catch 에 부분이 걸려 controller 에 있다면 이 부분은 

    처리가 되지 않는현상이 있네요.


    @RestControllerAdvice 를 사용하지 위해서는 

    모든 controller 의 try catch 부분은 걷어내야 하는걸까요?




  • 로그인을 하시면 답변을 등록할 수 있습니다.