728x90
개발서버에서는 Request 정보를 모두 로그를 찍어놓는 것이 테스트나 분석에 도움이 된다. 매번 log.info 로 찍거나 aop 를 구현하는 것도 방법이지만 Spring에서 제공하는 필터를 활용하는 것은 좋은 방법이다. CommonsRequestLoggingFilter 가 바로 그것인데 아래와 같이 셋팅하면 된다.
1. 필터등록
@Configuration
public class WebMvcConfig {
@Bean
public CommonsRequestLoggingFilter commonsRequestLoggingFilter() {
CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter();
filter.setIncludeClientInfo(true); //클라이언트 주소와 세션 ID를 로그에 출력
filter.setIncludeHeaders(true); //헤더정보를 로그에 출력
filter.setIncludeQueryString(true); //queryString을 로그에 출력
filter.setIncludePayload(true); //body request 내용을 로그에 출력
filter.setMaxPayloadLength(1000); //로그에 포함할 body request 사이즈 제한
return filter;
}
}
2. application.yml 에서 필터 로깅 레벨 지정
logging:
level:
org:
springframework:
web:
filter: DEBUG
참고로 body request 는 반드시 소모되어야 출력이 된다. 404 Not Found 같이 헤더나 파라미터만 읽고 응답이 완료되는 경우에는 찍히지 않는다는 말이다. 이 경우에는 어차피 다른 문제가 있기 때문에 body 는 확인할 필요가 없지만 이 경우에도 굳이 body를 확인하고 싶다면 CommonsRequestLoggingFilter 자체를 상속받아서 재정의하면 된다. 아래 포스팅을 참고하자.
728x90
'Backend > Spring+Boot' 카테고리의 다른 글
SpringBoot embedded Redis Cluster (0) | 2021.05.04 |
---|---|
spring cloud config 비활성화 (0) | 2021.05.04 |
크로스 도메인 이슈 (0) | 2021.04.29 |
@RestController (0) | 2021.04.27 |
@ResquestParam, @RequestBody 와 Get, Post (0) | 2021.04.26 |