[ 
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

Reply via email to