Spring Boot로 api를 개발할 때 쉽게 Request를 Logging 할 수 있게 Spring에서는 CommonsRequestLoggingFilter를 Servlet Filter 형태로 제공한다.
아래 bean 정의를 소스코드에 추가하고, logger 설정에서 org.springframework.web.filter
의 logger level을 debug로 바꾼다.
CommonsRequestLoggingFilter Bean
@Configuration
class FilterConfig {
@Bean
fun commonsRequestLoggingFilter(): CommonsRequestLoggingFilter {
val filter = CommonsRequestLoggingFilter()
filter.setIncludeClientInfo(true)
filter.setIncludeHeaders(true)
filter.setIncludePayload(true)
filter.setIncludeQueryString(true)
filter.setMaxPayloadLength(1024)
return filter
}
}
logback-spring.xml
<logger name="org.springframework" level="info"/>
<logger name="org.springframework.web.filter" level="debug"/>
FilterRegistrationBean로 특정 url에서만 filter 적용
특정 url 패턴에 대해서만 필터를 적용하고 싶다면 FilterRegistrationBean
bean을 추가적으로 만들어서 url을 지정한다.
@Configuration
class FilterConfig {
@Bean
fun loggingFilterRegistration(): FilterRegistrationBean<CommonsRequestLoggingFilter> { // 추가
val registration = FilterRegistrationBean(commonsRequestLoggingFilter())
registration.addUrlPatterns("/v1/api/*") // /v1/api로 시작하는 url의 request만 logging
return registration
}
@Bean
fun commonsRequestLoggingFilter(): CommonsRequestLoggingFilter {
val filter = CommonsRequestLoggingFilter()
// ...
return filter
}
}
'Dev > Spring' 카테고리의 다른 글
Swagger를 통한 REST 요청에 jwt 인증키 포함시키기 (0) | 2020.01.22 |
---|---|
[Spring Boot] Actuator를 추가했는데 404 에러가 발생하는 경우 (0) | 2019.09.20 |
Wiring in Spring (@Resource, @Inject, @Autowired 차이) (0) | 2019.09.15 |
Multi-Thread 환경에서 Spring Bean의 Thread Safe 문제 해결 (0) | 2019.09.02 |
댓글