Loading src/main/java/com/inteligr8/rs/Client.java +2 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ public abstract class Client { provider.enable(DeserializationFeature.UNWRAP_ROOT_VALUE); ClientBuilder clientBuilder = ClientBuilder.newBuilder() .register(provider); .register(provider) .register(new LoggingFilter()); if (authFilter == null) authFilter = this.getConfig().createAuthorizationFilter(); Loading src/main/java/com/inteligr8/rs/LoggingFilter.java 0 → 100644 +52 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import java.io.IOException; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.client.ClientResponseContext; import javax.ws.rs.client.ClientResponseFilter; import javax.ws.rs.core.Form; import javax.ws.rs.core.MediaType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter { private final Logger loggerRequest = LoggerFactory.getLogger("jaxrs.request"); private final Logger loggerResponse = LoggerFactory.getLogger("jaxrs.response"); private final ObjectMapper om = new ObjectMapper(); @Override public void filter(ClientRequestContext requestContext) throws IOException { if (this.loggerRequest.isTraceEnabled()) { if (MediaType.APPLICATION_JSON_TYPE.equals(requestContext.getMediaType())) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), this.om.writeValueAsString(requestContext.getEntity())); } else if (MediaType.APPLICATION_FORM_URLENCODED_TYPE.equals(requestContext.getMediaType())) { if (requestContext.getEntity() instanceof Form) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), ((Form)requestContext.getEntity()).asMap()); } else { this.loggerRequest.trace("request: {} {}: failed to output form", requestContext.getMethod(), requestContext.getUri()); } } else if (requestContext.getMediaType() != null) { this.loggerRequest.trace("request '{}': {} {}", requestContext.getMediaType(), requestContext.getMethod(), requestContext.getUri()); } else { this.loggerRequest.trace("request: {} {}", requestContext.getMethod(), requestContext.getUri()); } } } @Override public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException { if (this.loggerResponse.isTraceEnabled()) { this.loggerResponse.warn("response: NOT YET SUPPORTED"); } } } Loading
src/main/java/com/inteligr8/rs/Client.java +2 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ public abstract class Client { provider.enable(DeserializationFeature.UNWRAP_ROOT_VALUE); ClientBuilder clientBuilder = ClientBuilder.newBuilder() .register(provider); .register(provider) .register(new LoggingFilter()); if (authFilter == null) authFilter = this.getConfig().createAuthorizationFilter(); Loading
src/main/java/com/inteligr8/rs/LoggingFilter.java 0 → 100644 +52 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import java.io.IOException; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.client.ClientResponseContext; import javax.ws.rs.client.ClientResponseFilter; import javax.ws.rs.core.Form; import javax.ws.rs.core.MediaType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.databind.ObjectMapper; public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter { private final Logger loggerRequest = LoggerFactory.getLogger("jaxrs.request"); private final Logger loggerResponse = LoggerFactory.getLogger("jaxrs.response"); private final ObjectMapper om = new ObjectMapper(); @Override public void filter(ClientRequestContext requestContext) throws IOException { if (this.loggerRequest.isTraceEnabled()) { if (MediaType.APPLICATION_JSON_TYPE.equals(requestContext.getMediaType())) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), this.om.writeValueAsString(requestContext.getEntity())); } else if (MediaType.APPLICATION_FORM_URLENCODED_TYPE.equals(requestContext.getMediaType())) { if (requestContext.getEntity() instanceof Form) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), ((Form)requestContext.getEntity()).asMap()); } else { this.loggerRequest.trace("request: {} {}: failed to output form", requestContext.getMethod(), requestContext.getUri()); } } else if (requestContext.getMediaType() != null) { this.loggerRequest.trace("request '{}': {} {}", requestContext.getMediaType(), requestContext.getMethod(), requestContext.getUri()); } else { this.loggerRequest.trace("request: {} {}", requestContext.getMethod(), requestContext.getUri()); } } } @Override public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException { if (this.loggerResponse.isTraceEnabled()) { this.loggerResponse.warn("response: NOT YET SUPPORTED"); } } }