You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2022/01/06 15:02:07 UTC

[logging-log4j2] 01/03: Add org.apache.logging.log4j.core.appender.AsyncAppender.getAppenders() to more easily port from org.apache.log4j.AsyncAppender.getAllAppenders().

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 <ga...@gmail.com>
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());