@@ -0,0 +1,1143 @@
+package org.textfiledatatools.core.logger;%0A%0Aimport org.textfiledatatools.core.Record;%0Aimport org.textfiledatatools.core.message.RecordMessage;%0A%0Aimport java.io.IOException;%0Aimport java.io.UncheckedIOException;%0Aimport java.util.Objects;%0A%0A/**%0A * @author Mathias Kalb%0A * @since 0.1%0A */%0Apublic class AppendableLogger%3CT extends Record, R extends Appendable%3E implements RecordLogger%3CT%3E %7B%0A%0A    protected final Object lock = new Object();%0A%0A    protected final R appendable;%0A    protected final RecordMessage%3C? super T%3E recordMessage;%0A%0A    public AppendableLogger(R appendable, RecordMessage%3C? super T%3E recordMessage) %7B%0A        Objects.requireNonNull(appendable);%0A        Objects.requireNonNull(recordMessage);%0A        this.appendable = appendable;%0A        this.recordMessage = recordMessage;%0A    %7D%0A%0A    @Override%0A    public void log(T record) %7B%0A        synchronized (lock) %7B%0A            try %7B%0A                appendable.append(recordMessage.createMessage(record));%0A            %7D catch (IOException e) %7B%0A                throw new UncheckedIOException(e);%0A            %7D%0A        %7D%0A    %7D%0A%0A    public R getAppendable() %7B%0A        return appendable;%0A    %7D%0A%0A%7D%0A

Add AppendableLogger (copy of AppendableConsumer)