This issue: https://issues.apache.org/jira/browse/LOG4J2-1733
raises an architectural issue.

As far as I understand, Log4j assumes that regular appenders (the
AsyncAppender is a special case) to be synchronous, and
provides AsyncAppender and async loggers if you want async behavior.

It would be easy to fulfill LOG4J2-1733 and add an option to make
KafkaAppeder asynchronous. But that that would violate the contract, and
might cause problems that are not so easy to foresee.

However, refusing LOG4J2-1733 and insisting in keeping all appenders
synchronous, even when real async I/O is available, will limit performance.

Should we refine the appender interface and explicitly allow them to be
asynchronous, changing AsyncAppender and parts of core to make use of this
to optimize processing?

Thoughts?

-- 
[image: MagineTV]

*Mikael Ståldal*
Senior software developer

*Magine TV*
mikael.stal...@magine.com
Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com

Privileged and/or Confidential Information may be contained in this
message. If you are not the addressee indicated in this message
(or responsible for delivery of the message to such a person), you may not
copy or deliver this message to anyone. In such case,
you should destroy this message and kindly notify the sender by reply
email.

Reply via email to