@Override
    public final O execute(ClientRequestContext ctx, I req) throws Exception {
        ctx.log().whenComplete().thenAccept(log -> {
            if (sampler.isSampled(log)) {
                log(ctx, log, logWriter);
            }
        });
        return unwrap().execute(ctx, req);
    }
Decorates a {@link Client} to log {@link Request}s and {@link Response}s.

@param <I> the {@link Request} type
@param <O> the {@link Response} type
core/src/main/java/com/linecorp/armeria/client/logging/AbstractLoggingClient.java