public Printed<K, V> withKeyValueMapper(final KeyValueMapper<? super K, ? super V, String> mapper) {
        Objects.requireNonNull(mapper, "mapper can't be null");
        this.mapper = mapper;
        return this;
    }
Print the records of a {@link KStream} with the provided {@link KeyValueMapper}
The provided KeyValueMapper's mapped value type must be {@code String}.
<p>
The example below shows how to customize output data.
<pre>{@code
final KeyValueMapper<Integer, String, String> mapper = new KeyValueMapper<Integer, String, String>() {
    public String apply(Integer key, String value) {
        return String.format("(%d, %s)", key, value);
    }
};
}</pre>

Implementors will need to override {@code toString()} for keys and values that are not of type {@link String},
{@link Integer} etc. to get meaningful information.

@param mapper mapper to use
@return this
streams/src/main/java/org/apache/kafka/streams/kstream/Printed.java