티스토리 뷰

728x90

Spring

API Logging

CommonsRequestLggingFilter

  • REST API를 만들고 서버에서 어떤 url로 요청을 하는지 로그를 남기고 싶을 때 사용한다.

사용법

  1. CommonsLoggingFilter 빈등록
   @Bean
   public CommonsRequestLoggingFilter commonsRequestLoggingFilter() {
       CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
       filter.setIncludeClientInfo(true);
       filter.setIncludeHeaders(true);
       filter.setIncludePayload(true);
       filter.setIncludeQueryString(true);
       filter.setMaxPayloadLength(1000);
       return filter;
   }
  • setIncludeClientInfo(true): 클라이언트 주소와 세션 ID를 로그 메세지에 포함한다.
  • filter.setIncludeHeaders(true) : 헤더정보를 로그에 포함한다.
  • filter.setIncludePayload(true) : request내용을 로그에 포함한다.
  • filter.setIncludeQueryString(true) : 쿼리 문자열을 로그 메세지에 포함한다.
  • filter.setMaxPayloadLength(1000) : 로그의 최대 길이을 설정한다.
  1. logger의 debug level을 enable해준다.
   public class CommonsRequestLoggingFilter extends AbstractRequestLoggingFilter {
       @Override
       protected boolean shouldLog(HttpServletRequest request) {
           return logger.isDebugEnabled();
       }
       /**
        * Writes a log message before the request is processed.
        */
       @Override
       protected void beforeRequest(HttpServletRequest request, String message) {
           logger.debug(message);
       }
       /**
        * Writes a log message after the request is processed.
        */
       @Override
       protected void afterRequest(HttpServletRequest request, String message) {
           logger.debug(message);
       }
   }
  • SpringBoot를 사용할 경우 아래와 같이 간편한게 Property or yml 파일 수정으로 설정이 가능하다.

     logging.level.org.springframework.web.filter=debug

결과

CommonsLoggingFilter01

참고




728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday