package br.gov.servicos.piwik; import lombok.AccessLevel; import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.client.ClientHttpResponse; import org.springframework.web.client.DefaultResponseErrorHandler; import org.springframework.web.client.ResponseErrorHandler; import java.io.IOException; import static br.gov.servicos.foundation.IO.read; @Slf4j @FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true) public class RestTemplateErrorLogger implements ResponseErrorHandler { ResponseErrorHandler errorHandler; @Autowired public RestTemplateErrorLogger(DefaultResponseErrorHandler handler) { errorHandler = handler; } @Override public boolean hasError(ClientHttpResponse response) throws IOException { return errorHandler.hasError(response); } @Override public void handleError(ClientHttpResponse response) throws IOException { log.debug("Status code: {}", response.getStatusCode()); log.debug("header", response.getHeaders()); log.debug("Body: {}", read(response.getBody())); } }