protected LogEvent subLog(LogEvent event) {
    return Log4jLogEvent.newBuilder()
        .setLevel(event.getLevel())
        .setLoggerName(event.getLoggerName())
        .setLoggerFqcn(event.getLoggerFqcn())
        .setMessage(subAppend(event))
        .setThrown(event.getThrown())
        .setContextData((StringMap) event.getContextData())
        .setContextStack(event.getContextStack())
        .setThreadName(event.getThreadName())
        .setSource(event.getSource())
        .setTimeMillis(event.getTimeMillis())
        .build();
  }
If async-Logger is enabled, the log-event is sent directly to the systemProducer. Else, the event is serialized
and added to a bounded blocking queue, before returning to the "synchronous" caller.
@param event the log event to append
@throws InterruptedException
samza-log4j2/src/main/java/org/apache/samza/logging/log4j2/StreamAppender.java