본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : Servlet Filter 요청 로그 확인하기

by 오주현 2022. 2. 22.
반응형

필터가 정상 작동하는지 확인하기 위해 모든 요청을 남기는 필터를 개발했다.

 

public class LogFilter implements Filter

먼저 필터는 Filter 인터페이스를 구현해야 한다.

 

ublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

HTTP 요청이 오면 doFilter가 호출된다. ServletRequest request는 HTTP 요청이 아닌 경우까지 고려한 인터페이스인데 HTTP를 사용하면

 

HttpServletRequest httpRequest = (HttpServletRequest) request;

이렇게 다운 캐스팅하여 사용하면 된다.

 

try {
      log.info("REQUEST [{}][{}]", uuid, requestURI);
      chain.doFilter(request, response);
  } catch (Exception e) {
      throw e;
  } finally {
      log.info("RESPONSE [{}][{}]", uuid, requestURI);
  }

출력 로그인다.

 

여기서 가장 중요한 부분이 chain.doFilter(request, response); 이라고 한다. 다음 필터가 있으면 필터를 호출하고 필터가 없으면 서블릿을 호출한다. 이 로직을 호출하지 않으면 다음 단계로 진행되지 않는다. ( 필터는 체인 형식으로 이루어질 수 있는 점을 떠올리면 이해가 될 것이다.)

 

만약, 같은 HTTP 요청건에 대해 모두 같은 식별자를 남기고 싶다면 logback mdc로 검색을 해보는 것을 추천한다고 한다.


스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글