@Slf4j
public class LogInterceptor implements HandlerInterceptor {
public static final String LOG_ID = "logId";
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
// @RequestMapping 요청인 경우 handler 매개변수에 HandlerMethod가 넘어옴
// 정적 리소스 요청인 경우 handler 매개변수에 ResourceHttpRequestHandler가 넘어옴
Object handler)
throws Exception {
if( handler instanceof HandlerMethod){
HandlerMethod handlerMethod = (HandlerMethod) handler; // 호출할 컨트롤러 메서드의 모든 정보가 포함돼 있음.
}
String requestURI = request.getRequestURI();
String uuid = UUID.randomUUID().toString();
request.setAttribute(LOG_ID,uuid); // 이렇게 설정을 해 놓고,postHandle()과 afterCompletion()
// 에서 request.getAttribute("logId")를 사용하여 uuid 꺼내어서 사용
log.info("REQUEST [{}], [{}], [{}]",uuid,requestURI,handler);
return true;
}