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/13 21:09:04 UTC

[logging-log4j2] branch release-2.x updated (74ca8b5 -> 17618b4)

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a change to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git.


    from 74ca8b5  Merge branch 'release-2.x' of https://gitbox.apache.org/repos/asf/logging-log4j2 into release-2.x
     new 7f565a3  Add CategoryUtil#getAppenders() and getFilters(); add Javadoc.
     new 17618b4  Add missing protected instance variable for BC.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../log4j/helpers/AppenderAttachableImpl.java      |  4 +
 .../org/apache/log4j/legacy/core/CategoryUtil.java | 97 +++++++++++++++++-----
 2 files changed, 82 insertions(+), 19 deletions(-)

[logging-log4j2] 02/02: Add missing protected instance variable for BC.

Posted by gg...@apache.org.
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 17618b47f5d54be8352545c2d4d2840ed8d1b3fd
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Jan 13 16:09:00 2022 -0500

    Add missing protected instance variable for BC.
---
 .../main/java/org/apache/log4j/helpers/AppenderAttachableImpl.java    | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/AppenderAttachableImpl.java b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/AppenderAttachableImpl.java
index a4bf87a..3b72848 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/AppenderAttachableImpl.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/AppenderAttachableImpl.java
@@ -19,6 +19,7 @@ package org.apache.log4j.helpers;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Objects;
+import java.util.Vector;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -33,6 +34,9 @@ public class AppenderAttachableImpl implements AppenderAttachable {
 
     private final ConcurrentMap<String, Appender> appenders = new ConcurrentHashMap<>();
 
+    /** Array of appenders. TODO */
+    protected Vector appenderList;
+
     @Override
     public void addAppender(final Appender newAppender) {
         if (newAppender != null) {

[logging-log4j2] 01/02: Add CategoryUtil#getAppenders() and getFilters(); add Javadoc.

Posted by gg...@apache.org.
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 7f565a3e3ef030f0365d1e203b22df788de3fb0e
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Jan 13 16:08:21 2022 -0500

    Add CategoryUtil#getAppenders() and getFilters(); add Javadoc.
    
    Refactor duplication.
---
 .../org/apache/log4j/legacy/core/CategoryUtil.java | 97 +++++++++++++++++-----
 1 file changed, 78 insertions(+), 19 deletions(-)

diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/legacy/core/CategoryUtil.java b/log4j-1.2-api/src/main/java/org/apache/log4j/legacy/core/CategoryUtil.java
index 04c47aa..ea6b43c 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/legacy/core/CategoryUtil.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/legacy/core/CategoryUtil.java
@@ -16,45 +16,104 @@
  */
 package org.apache.log4j.legacy.core;
 
+import java.util.Iterator;
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.spi.LoggerContext;
 
 /**
- * Provide access to Log4j Core Logger methods.
+ * Delegates to {@code Logger} methods implemented by {@code log4j-core} if appropriate.
  */
 public final class CategoryUtil {
 
+    private static org.apache.logging.log4j.core.Logger asCore(final Logger logger) {
+        return (org.apache.logging.log4j.core.Logger) logger;
+    }
+
+    private static <T> T get(final Logger logger, final Supplier<T> run, final T defaultValue) {
+        return isCore(logger) ? run.get() : defaultValue;
+    }
+
+    /**
+     * Delegates to {@link org.apache.logging.log4j.core.Logger#getAppenders()} if appropriate.
+     *
+     * @param logger The target logger.
+     * @return A Map containing the Appender's name as the key and the Appender as the value.
+     */
+    public static Map<String, Appender> getAppenders(final Logger logger) {
+        return get(logger, asCore(logger)::getAppenders, null);
+    }
+
+    /**
+     * Delegates to {@link org.apache.logging.log4j.core.Logger#getFilters()} if appropriate.
+     *
+     * @param logger The target logger.
+     * @return An Iterator over all the Filters associated with the Logger.
+     */
+    public static Iterator<Filter> getFilters(final Logger logger) {
+        return get(logger, asCore(logger)::getFilters, null);
+    }
+
+    /**
+     * Delegates to {@link org.apache.logging.log4j.core.Logger#getContext()} if appropriate.
+     *
+     * @param logger The target logger.
+     * @return the LoggerContext.
+     */
     public static LoggerContext getLoggerContext(final Logger logger) {
-        if (logger instanceof org.apache.logging.log4j.core.Logger) {
-            return ((org.apache.logging.log4j.core.Logger) logger).getContext();
-        }
-        return null;
+        return get(logger, asCore(logger)::getContext, null);
     }
 
+    /**
+     * Delegates to {@link org.apache.logging.log4j.core.Logger#getParent()} if appropriate.
+     *
+     * @param logger The target logger.
+     * @return The parent Logger.
+     */
     public static Logger getParent(final Logger logger) {
-        if (logger instanceof org.apache.logging.log4j.core.Logger) {
-            return ((org.apache.logging.log4j.core.Logger) logger).getParent();
-        }
-        return null;
+        return get(logger, asCore(logger)::getParent, null);
     }
-    
+
+    /**
+     * Delegates to {@link org.apache.logging.log4j.core.Logger#isAdditive()} if appropriate.
+     *
+     * @param logger The target logger.
+     * @return true if the associated LoggerConfig is additive, false otherwise.
+     */
     public static boolean isAdditive(final Logger logger) {
-        if (logger instanceof org.apache.logging.log4j.core.Logger) {
-            return ((org.apache.logging.log4j.core.Logger) logger).isAdditive();
-        }
-        return false;
+        return get(logger, asCore(logger)::isAdditive, false);
+    }
+
+    private static boolean isCore(final Logger logger) {
+        return logger instanceof org.apache.logging.log4j.core.Logger;
     }
 
-    public static void setAdditivity(final Logger logger, final boolean additivity) {
-        if (logger instanceof org.apache.logging.log4j.core.Logger) {
-            ((org.apache.logging.log4j.core.Logger) logger).setAdditive(additivity);
+    /**
+     * Delegates to {@link org.apache.logging.log4j.core.Logger#setAdditive(boolean)} if appropriate.
+     *
+     * @param logger The target logger.
+     * @param additive Boolean value to indicate whether the Logger is additive or not.
+     */
+    public static void setAdditivity(final Logger logger, final boolean additive) {
+        if (isCore(logger)) {
+            asCore(logger).setAdditive(additive);
         }
     }
 
+    /**
+     * Delegates to {@link org.apache.logging.log4j.core.Logger#setLevel(Level)} if appropriate.
+     *
+     * @param logger The target logger.
+     * @param level The Level to use on this Logger, may be null.
+     */
     public static void setLevel(final Logger logger, final Level level) {
-        if (logger instanceof org.apache.logging.log4j.core.Logger) {
-            ((org.apache.logging.log4j.core.Logger) logger).setLevel(level);
+        if (isCore(logger)) {
+            asCore(logger).setLevel(level);
         }
     }