Custom Log4J Appender
First, I don't think the close() method is following the contract, from the javadoc: 


  It is a programming error to append to a closed appender.


Therefore, your close() method should be implemented like this:

@Override
public void close() {
    this.closed = true;
}


Note that closed is a protected field in AppenderSkeleton. 

Then, change append to something like (add the @Override as well):

@Override
public void append(LoggingEvent event) {
    if (!this.closed) {
        ArrayList&lt;LoggingEvent&gt; buffer = new ArrayList&lt;LoggingEvent&gt;();
        buffer.add(event);
        flushBuffer(buffer);
    } else {
        // It is a programming error to append to a closed appender.
        throw new RuntimeException("Attempting to append to a closed Appender.");
    }
}


Next, does flushBuffer need to be public? It should probably be private.

Finally&mdash;and this is more of a nitpick&mdash;you don't need to declare the default constructor since it's empty and the compiler will create one for you. It'll make your code a little cleaner as well.