[
https://issues.apache.org/jira/browse/LOG4J2-3472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17522828#comment-17522828
]
Volkan Yazici commented on LOG4J2-3472:
---------------------------------------
I'd indeed accept a kv-pair in the configuration and pass it as a List<KVPair>
to the factory.
Note that you also need to deal with the presence of multiple plugins matching
for the target interface. To avoid such cases, I make sure my plugin interface
extends from {{Comparable}} and use that to sort the matching plugins and pick
the first one and drop a debug message to the status logger.
> Allow configuration of custom Disruptor WaitStrategy
> ----------------------------------------------------
>
> Key: LOG4J2-3472
> URL: https://issues.apache.org/jira/browse/LOG4J2-3472
> Project: Log4j 2
> Issue Type: New Feature
> Components: Configuration, Core
> Affects Versions: 2.17.2
> Reporter: Remko Popma
> Assignee: Remko Popma
> Priority: Major
> Fix For: 2.17.3
>
>
> See also LOG4J2-2858.
> Currently Log4j allows a fixed set of disruptor WaitStrategies to be
> configured. The current code has two drawbacks:
> * the fixed set does not include all built-in WaitStrategies that the
> disruptor library provides
> * the configuration does not allow custom implementations of the
> {{com.lmax.disruptor.WaitStrategy}} interface.
> h4. Proposal:
> Introduce a {{org.apache.logging.log4j.core.async.WaitStrategyProvider}}
> interface. Users may configure instances of this interface by setting system
> property {{log4j2.asyncWaitStrategyProvider}}.
> Proposed implementation is to modify {{DisruptorUtil::createWaitStrategy}} to
> check for the existence of this system property, before doing anything else.
> If this property exists and a class can be instantiated based on the value of
> this property, and the resulting WaitStrategyProvider instance provides a
> non-null {{com.lmax.disruptor.WaitStrategy}} instance, then this waitstrategy
> is returned from {{DisruptorUtil::createWaitStrategy}}. Otherwise, we fall
> back to the existing logic.
> Note that for simplicity I do not propose to have separate system properties
> for Async Loggers and Async LoggerConfigs.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)