package com.github.ggeorgovassilis.springjsonmapper.utils; import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.http.HttpRequest; import org.springframework.http.client.ClientHttpRequestExecution; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.http.client.ClientHttpResponse; import org.springframework.util.FileCopyUtils; /** * Utility for logging * * @author george georgovassilis * */ public class LoggingRequestInterceptor implements ClientHttpRequestInterceptor { private static final Log requestLog = LogFactory .getLog("com.github.ggeorgovassilis.springjsonmapper.Request"); private static final Log responseLog = LogFactory .getLog("com.github.ggeorgovassilis.springjsonmapper.Response"); @Override public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { ClientHttpResponse response = execution.execute(request, body); log(request, body, response); return response; } private void log(HttpRequest request, byte[] body, ClientHttpResponse response) throws IOException { if (requestLog.isDebugEnabled()) { String s = new String(body); requestLog.debug(request.getURI().toString()+" - "+s); } if (responseLog.isDebugEnabled()) { byte[] b = FileCopyUtils.copyToByteArray(response.getBody()); String s = new String(b); responseLog.debug(request.getURI().toString()+" - "+s); } } }