If one would look close to existing appenders, almost everyone of them
implements a custom batching solution. To the best of my knowledge, this is
mainly due to the constraint in the Appender interface:
void append(LogEvent event);
If this would have been replaced (enhanced?) with
void append(List<LogEvent> event);
appenders wouldn't need to implement any batching at all. Further, Log4j
could have also provided a batching filter replacing all the custom
batching code internal to the appenders.
What do you think? Am I missing something obvious here?