728x90
반응형
# Zuul 필터를 통해 로그를 찍는 방법에 대해 알아보자.
1. 아래의 그림처럼 패키지를 생성하고 class 파일을 생성한다.
2. extends ZuulFilter 후 alt+insert 키를 눌러서 implement Method 해주거나 마우스 우클릭 후 Generate 후 implement 해주면 아래와 같이 오버라이드 되어 생성이 된다.
- 해당 필터는 사용자가 요청이 들어올때마다 먼저 실행되는 메소드라고 볼 수 있다.
package com.example.zuulservice.filter;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@Component
public class ZuulLoggingFilter extends ZuulFilter {
@Override
public Object run() throws ZuulException {
log.info("************** printing logs: ");
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
log.info("**************" + request.getRequestURI());
return null;
}
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 1;
}
@Override
public boolean shouldFilter() {
return true;
}
}
3. 로그 찍기, run 메소드가 실행되므로 run 메소드안에 아래와같이 코드를 입력해주면 된다.
@Override
public Object run() throws ZuulException {
log.info("************** printing logs: ");
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
log.info("**************" + request.getRequestURI());
RequestContext란?
요청/회신 모델에서 RequestContext 개체는 들어오는 요청과 전달 되는 회신 간의 링크이다. 서버는 요청을 받으면 RequestContext 채널에 대 한 요청을 나타내는 인스턴스를 제공 한다.
httpservletrequest 란?
HttpServletRequest는 URL정보, 쿠키, 헤더, GET/POST로 전송한 값을 가져오는데 사용된다.
- 로그는 아래와 같이 찍힌다.
- 해당 필터는 로그 및 인증정보 체크 그리고 추가적인 변환작업 등에 활용할 수 있다.
4. 브라우저에서 실행된 모습
728x90
반응형
'MSA (MicroServiceArchitecture) > Eureka & Spring Cloud Gateway' 카테고리의 다른 글
MSA (Spring Gateway 필터적용_01) (0) | 2021.06.17 |
---|---|
MSA (Spring Cloud Gateway 프로젝트 생성) (0) | 2021.06.17 |
MSA (Netflix zuul 프로젝트 생성 및 라우팅) (0) | 2021.06.17 |
MSA (동적으로 포트와 인스턴스 ID를 할당받아 실행하기) (0) | 2021.06.16 |
MSA (스프링 부트 어플리케이션을 실행하는 4가지 방법) (0) | 2021.06.16 |