@Override
    public synchronized void close() {
        if (this.closed) {
            return;
        }
        this.closed = true;
        this.writeFooter();
        this.reset();
        if (this.producer != null) {
            try {
                this.producer.shutdown();
                this.messageSessionFactory.shutdown();
            }
            catch (final MetaClientException e) {
                // ignore
            }
        }
    }
Close this appender instance. The underlying stream or writer is also
closed.

<p>
Closed appenders cannot be reused.

@see #setWriter
@since 0.8.4
metamorphosis-client-extension/src/main/java/com/taobao/metamorphosis/client/extension/log4j/StreamAppender.java