[ https://issues.apache.org/jira/browse/LOG4J2-1797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15884153#comment-15884153 ]
Matt Sicker commented on LOG4J2-1797: ------------------------------------- I found a potentially useful interface already in Java for a callback: [CompletionHandler|https://docs.oracle.com/javase/8/docs/api/java/nio/channels/CompletionHandler.html]. > Add asynchronous/non-blocking SPIs for appenders > ------------------------------------------------ > > Key: LOG4J2-1797 > URL: https://issues.apache.org/jira/browse/LOG4J2-1797 > Project: Log4j 2 > Issue Type: Improvement > Components: Appenders > Reporter: Matt Sicker > > Some appenders (e.g., Kafka and Cassandra) support using an asynchronous SPI > with callbacks (to make them non-blocking). In a Scala-based API, this could > be easily handled with the Future class, and with Java 8, this could be > easily handled with a CompleteableFuture class. However, if this API > improvement is desired for Java 7, then we'd need to create a basic callback > API that would ideally be easy to update to CompleteableFuture later on. > In theory, such an SPI could also be adapted to use the Flow classes in Java > 9. This may be an interesting API to follow as we could use the Reactive > Streams standard API or a compatible API. > Some main things that would be desirable in such an SPI would include > asynchronous error handling (e.g., to trigger a failover appender). This > should be adapted to work well with the generic AsyncAppender and AsyncLogger > as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org