@Override
    protected void subAppend(LoggingEvent event) {
        synchronized (this.events) {
            while (this.events.size() >= this.logBufferSize) {
                this.events.poll();
            }
            this.events.offer(event);
        }
        super.subAppend(event);
    }
Custom daily rolling file appender for metaq,it keeps an bounded queue in
memory to hold latest logs.

@author dennis<killme2008@gmail.com>
metamorphosis-commons/src/main/java/com/taobao/metamorphosis/utils/log/MetaqDailyRollingFileAppender.java