본문 바로가기

spring3

RestControllerAdvice 사용하여 로깅 @RestControllerAdvice 혹은 @ControllerAdvice 를 사용하여 로깅하는 방법도 존재한다. Request import io.github.oshai.kotlinlogging.KotlinLogging import org.springframework.core.MethodParameter import org.springframework.http.HttpInputMessage import org.springframework.http.converter.HttpMessageConverter import org.springframework.web.bind.annotation.RestControllerAdvice import org.springframework.web.servlet.mvc.met.. 2023. 9. 25.
AOP 사용하여 로깅 @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 을 사용하는 메서드를 찾아서 로깅을 해주는 방식이다. getPointCut()에 return을 주지 않으면 데이터가 유실되는 현상이 나타나므로 return을 붙여줘야한다. getBody()에서는 사용된 어노테이션중 RequestBody를 찾아서 데이터를 가져 오도록 처리 하였다. @Aspect @Component class ApiLogAop { private val logger = KotlinLogging.logger {} @Pointcut( "@annotation(org.springframework.web.bind.annotation.GetMapping) ||" + "@annotation(org.sprin.. 2023. 9. 25.
Interceptor를 사용하여 Request/Reponse Logging Interceptor를 사용하여 Request/Reponse Logging 하는 방법에 대해 알아보자 이 글에선 예제 및 테스트용으로 작성하였기에 validation 처리는 따로 하지 않는다. Interceptor에서 logging을 할 때, Body를 읽지 않는 경우에 발생하는 문제가 있다. 만약 필요하지 않다면 바로 logging을 적용하면된다. body 사용하지 않는 경우 class ApiLogInterceptor : HandlerInterceptor { private val logger = KotlinLogging.logger {} override fun preHandle(request: HttpServletRequest, response: HttpServletResponse, handler: A.. 2023. 9. 20.