You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Matt Sicker (Jira)" <ji...@apache.org> on 2022/01/17 21:31:00 UTC

[jira] [Commented] (LOG4J2-1797) Add asynchronous/non-blocking SPIs for appenders

    [ https://issues.apache.org/jira/browse/LOG4J2-1797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17477429#comment-17477429 ] 

Matt Sicker commented on LOG4J2-1797:
-------------------------------------

Another feature potentially useful to introduce in 3.0.

> 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
>            Priority: Major
>
> 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
(v8.20.1#820001)