내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
springframework:mvc:logging
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 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 3일 경우이며, Spring 버전에 따라 어떤 로거에서 관련 로그를 남기는지 여부는 바뀔 수 있다. <code properties> # log4j 등 로거에서 처리할 것 # 컨트롤러 클래스와 메소드가 로그로 남는다. log4j.logger.org.springframework.web.bind.annotation.support.HandlerMethodInvoker = 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> 이제, [[eclipse:grepconsole|Eclipse Grep Console]]에서 두 종류의 정규표현식을 등록해두면 편하게 볼 수 있다. * ''.*Rendering view (.*)'' : 뷰 정보 로그를 강조해 보여줌 * ''.*Invoking request handler method: (.*)'' : 컨트롤러와 메소드 정보 로그를 강조해 보여줌
springframework/mvc/logging.txt
· 마지막으로 수정됨: 2018/01/03 16:31 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로