This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch release-2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 5a50128aa9876f198c5a2a330b107053820482d8 Author: Gary Gregory <[email protected]> AuthorDate: Thu Jan 6 10:01:40 2022 -0500 Add org.apache.logging.log4j.core.appender.AsyncAppender.getAppenders() to more easily port from org.apache.log4j.AsyncAppender.getAllAppenders(). Commit 1/3 to allow some cherry-picking to master. --- .../logging/log4j/core/appender/AsyncAppender.java | 10 ++++++++++ .../core/appender/AsyncAppenderEventDispatcher.java | 21 ++++++++++++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java index bab61ae..253e235 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppender.java @@ -50,6 +50,7 @@ import java.util.Map; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import java.util.concurrent.TransferQueue; +import java.util.stream.Collectors; /** * Appends to one or more Appenders asynchronously. You can configure an AsyncAppender with one or more Appenders and an @@ -400,6 +401,15 @@ public final class AsyncAppender extends AbstractAppender { } /** + * Gets all Appenders. + * + * @return a list of Appenders. + */ + public List<Appender> getAppenders() { + return dispatcher.getAppenders(); + } + + /** * Returns the name of the appender that any errors are logged to or {@code null}. * * @return the name of the appender that any errors are logged to or {@code null} diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java index d9efc94..da5c505 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/AsyncAppenderEventDispatcher.java @@ -16,18 +16,20 @@ */ package org.apache.logging.log4j.core.appender; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; + import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.AppenderControl; import org.apache.logging.log4j.core.impl.Log4jLogEvent; import org.apache.logging.log4j.core.util.Log4jThread; import org.apache.logging.log4j.status.StatusLogger; -import java.util.List; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicLong; - class AsyncAppenderEventDispatcher extends Log4jThread { private static final LogEvent STOP_EVENT = new Log4jLogEvent(); @@ -57,6 +59,15 @@ class AsyncAppenderEventDispatcher extends Log4jThread { this.stoppedRef = new AtomicBoolean(false); } + /** + * Gets all Appenders. + * + * @return a list of Appenders. + */ + List<Appender> getAppenders() { + return appenders.stream().map(AppenderControl::getAppender).collect(Collectors.toList()); + } + @Override public void run() { LOGGER.trace("{} has started.", getName());
