보통 이것은 servlet filter을 사용하여 수행 할 수 있습니다. 서블릿 필터는 요청을 "차단 (intercept)"하고 그 응답은 빠져 나갑니다. HttpServletRequest 및 HttpServletResponse에서 필요한 모든 정보에 액세스하여 원하는대로 로그 할 수 있습니다.
간단한 예 :
public class LoggingFilter implements javax.servlet.Filter {
private static final Logger LOGGER = LoggerFactory.getLogger(LoggingFilter.class);
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
// log information from the httpServletRequest like url, params, etc
filterChain.doFilter(servletRequest, servletResponse);
// log information regarding the httpServletResponse like status code, etc
}
}
은 @ SpringBootApplication - 주석 클래스의 필터를 등록 :
@Bean
public FilterRegistrationBean loadBalancerHealthCheckHandler() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new LoggingFilter());
registration.addUrlPatterns("/*");
return registration;
}
임베디드 부두 또는 외부 바람둥이를 사용하고 있습니까? –
외부 바람둥이를 사용하고 있습니다. – NAZEHA
어떤 HTTP 클라이언트를 사용하고 있습니까? –