LoggingClientFilter implements ClientRequestFilter, ClientResponseFilter { @Override public void filter(ClientRequestContext requestContext) throws IOException { level.log(logger, "Request: {} {} {}", requestContext.getMethod(), requestContext.getUri(), requestContext.getHeaders()); } LoggingClientFilter(@Nonnull Logger logger, @Nonnull LogLevel level);  LoggingClientFilter(@Nonnull Class<?> context, @Nonnull LogLevel level); @Override void filter(ClientRequestContext requestContext); @Override void filter(ClientRequestContext requestContext, ClientResponseContext responseContext);  }
@Test public void givenRequestContext_whenFilter_thenNoExceptionThrown() throws IOException { loggingClientFilter.filter(clientRequestContext); }
@Test public void givenRequestAndResponseContext_whenFilter_thenNoExceptionThrown() throws IOException { loggingClientFilter.filter(clientRequestContext, clientResponseContext); }