사용자 도구

사이트 도구


springframework:mvc:logging

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
springframework:mvc:logging [2012/01/09 17:14]
kwon37xi
springframework:mvc:logging [2018/01/03 16:31] (현재)
kwon37xi [Spring 3.1]
줄 1: 줄 1:
 ====== Spring @MVC에서 컨트롤러 정보 확인 ====== ====== Spring @MVC에서 컨트롤러 정보 확인 ======
 +
 +===== Spring 3.1 =====
 +Spring 3.1 부터 Interceptor에 넘겨주는 handler 가 [[http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/method/HandlerMethod.html|HandlerMethod]]라는 클래스의 객체로 변경되었다. 단, 일부 핸들러의 경우 다른 클래스의 객체가 넘어오는 경우가 있으므로 검사를 해야한다.
 +
 +로그를 남기는 인터셉터를 만들고 handler 객체에서 클래스 정보와 메소드 정보를 뽑아서 로그로 남기면 된다.
 +<code java>
 +if (!(handler instanceof HandlerMethod)) {
 +    log.debug("Current Request Handler : {}", handler.getClass().getCanonicalName());
 +    return;
 +}
 +HandlerMethod method = (HandlerMethod)handler;
 +log.debug("Current Request Handler : {}.{}()", method.getBeanType().getCanonicalName(), method.getMethod().getName());
 +</code>
 +
 +===== Spring 3.0 =====
 Spring @MVC를 사용할 경우, 웹브라우저를 통해 요청을 했을 때 어떤 컨트롤러가 해당 요청을 처리하는지 금방 알아내기 어려울 때 사용한다. Spring @MVC를 사용할 경우, 웹브라우저를 통해 요청을 했을 때 어떤 컨트롤러가 해당 요청을 처리하는지 금방 알아내기 어려울 때 사용한다.
 아래는 Spring 3일 경우이며, Spring 버전에 따라 어떤 로거에서 관련 로그를 남기는지 여부는 바뀔 수 있다. 아래는 Spring 3일 경우이며, Spring 버전에 따라 어떤 로거에서 관련 로그를 남기는지 여부는 바뀔 수 있다.
줄 11: 줄 26:
 # 어떤 뷰를 사용하는지 여부가 로그로 남는다. # 어떤 뷰를 사용하는지 여부가 로그로 남는다.
 log4j.logger.org.springframework.web.servlet.DispatcherServlet = DEBUG log4j.logger.org.springframework.web.servlet.DispatcherServlet = DEBUG
 +</code>
 +<code xml>
 +<logger name="org.springframework.web.bind.annotation.support.HandlerMethodInvoker">
 + <level value="DEBUG" />
 +</logger>
 +
 +<logger name="org.springframework.web.servlet.DispatcherServlet">
 + <level value="DEBUG" />
 +</logger>
 </code> </code>
  
springframework/mvc/logging.1326096872.txt.gz · 마지막으로 수정됨: 2012/01/09 17:14 저자 kwon37xi