Getting started with Log.apex
Custom Async Appender
To create a custom async appender, you can implement Log.AsyncAppender or extend Log.DefaultAsyncAppender.
public class CustomAsyncAppender extends Log.DefaultAsyncAppender {
    public override void flush() {
        for(Log.Context ctx : this.contexts) {
            String message = ctx.message;
            // Custom code
        }
    }
}