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());