[
https://issues.apache.org/jira/browse/LOG4J2-1797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16006495#comment-16006495
]
Mikael Ståldal commented on LOG4J2-1797:
----------------------------------------
It would also be useful to be able to handle recursive logging prevention when
the recursive logging happen in another thread. The recursive logging
prevention in AppenderControl currently only works within the same thread.
We have this need in KafkaAppender and FlumeAppender, where we need to have
specific ad-hoc solutions now.
> 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)