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/24 19:50:02 UTC

[logging-log4j2] branch release-2.x updated (5475510 -> 3042e80)

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 5475510  Avoid NPEs in edge cases for bridge clients.
     new 11f6972  Fix getting the right logger context.
     new 3042e80  Add Configurator.setLevel(Class, Level).

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:
 .../logging/log4j/core/config/Configurator.java    | 31 ++++++++++++++++------
 .../org/apache/logging/log4j/core/LoggerTest.java  | 17 +++++++++++-
 src/changes/changes.xml                            |  2 +-
 3 files changed, 40 insertions(+), 10 deletions(-)

[logging-log4j2] 01/02: Fix getting the right logger context.

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 11f6972c5cbec6abe86b73d5caed091bb3ef4649
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Mon Jan 24 14:01:16 2022 -0500

    Fix getting the right logger context.
---
 .../logging/log4j/core/config/Configurator.java       | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
index d42d1e3..e165a0d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
@@ -337,7 +337,7 @@ public final class Configurator {
      * @return the given logger
      */
     public static Logger setLevel(final Logger logger, final Level level) {
-        setLevel(logger.getName(), level);
+        setLevel(LoggerContext.getContext(StackLocatorUtil.getCallerClassLoader(2), false, null), logger.getName(), level);
         return logger;
     }
     
@@ -349,6 +349,14 @@ public final class Configurator {
         return set;
     }
 
+    private static void setLevel(final LoggerContext loggerContext, final String loggerName, final Level level) {
+        if (Strings.isEmpty(loggerName)) {
+            setRootLevel(level, loggerContext);
+        } else if (setLevel(loggerName, level, loggerContext.getConfiguration())) {
+            loggerContext.updateLoggers();
+        }
+    }
+
     /**
      * Sets logger levels.
      *
@@ -379,12 +387,7 @@ public final class Configurator {
      *            the new level
      */
     public static void setLevel(final String loggerName, final Level level) {
-        final LoggerContext loggerContext = LoggerContext.getContext(StackLocatorUtil.getCallerClassLoader(2), false, null);
-        if (Strings.isEmpty(loggerName)) {
-            setRootLevel(level, loggerContext);
-        } else if (setLevel(loggerName, level, loggerContext.getConfiguration())) {
-            loggerContext.updateLoggers();
-        }
+        setLevel(LoggerContext.getContext(StackLocatorUtil.getCallerClassLoader(2), false, null), loggerName, level);
     }
 
     /**
@@ -396,7 +399,7 @@ public final class Configurator {
      *            the new level
      */
     public static void setLevel(final String loggerName, final String level) {
-        setLevel(loggerName, Level.toLevel(level));
+        setLevel(LoggerContext.getContext(StackLocatorUtil.getCallerClassLoader(2), false, null), loggerName, Level.toLevel(level));
     }
 
     private static boolean setLevel(final String loggerName, final Level level, final Configuration config) {

[logging-log4j2] 02/02: Add Configurator.setLevel(Class, Level).

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 3042e80fc6624e410925e4a264acddad92cc1541
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Mon Jan 24 14:49:56 2022 -0500

    Add Configurator.setLevel(Class, Level).
---
 .../apache/logging/log4j/core/config/Configurator.java  | 12 ++++++++++++
 .../java/org/apache/logging/log4j/core/LoggerTest.java  | 17 ++++++++++++++++-
 src/changes/changes.xml                                 |  2 +-
 3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
index e165a0d..e0f0e4f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
@@ -341,6 +341,18 @@ public final class Configurator {
         return logger;
     }
     
+    /**
+     * Sets a logger's level.
+     *
+     * @param clazz
+     *            the logger
+     * @param level
+     *            the new level
+     */
+    public static void setLevel(final Class<?> clazz, final Level level) {
+        setLevel(LoggerContext.getContext(StackLocatorUtil.getCallerClassLoader(2), false, null), clazz.getName(), level);
+    }
+    
     private static boolean setLevel(final LoggerConfig loggerConfig, final Level level) {
         final boolean set = !loggerConfig.getLevel().equals(level);
         if (set) {
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java
index 5afc4bd..dbfd10d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/LoggerTest.java
@@ -81,6 +81,8 @@ public class LoggerTest {
     org.apache.logging.log4j.Logger logger;
     org.apache.logging.log4j.Logger loggerChild;
     org.apache.logging.log4j.Logger loggerGrandchild;
+    org.apache.logging.log4j.Logger loggerClass;
+
     private final ListAppender app;
 
     private final ListAppender host;
@@ -91,6 +93,7 @@ public class LoggerTest {
         logger = context.getLogger("LoggerTest");
         loggerChild = context.getLogger("LoggerTest.child");
         loggerGrandchild = context.getLogger("LoggerTest.child.grand");
+        loggerClass = context.getLogger(LoggerTest.class);
         this.app = app.clear();
         this.host = host.clear();
         this.noThrown = noThrown.clear();
@@ -117,7 +120,7 @@ public class LoggerTest {
         final List<LogEvent> events = app.getEvents();
         assertEventCount(events, 3);
         assertEquals(
-                "org.apache.logging.log4j.core.LoggerTest.builder(LoggerTest.java:113)", events.get(0).getSource().toString(),
+                "org.apache.logging.log4j.core.LoggerTest.builder(LoggerTest.java:116)", events.get(0).getSource().toString(),
                 "Incorrect location");
         assertEquals(Level.DEBUG, events.get(0).getLevel(), "Incorrect Level");
         MatcherAssert.assertThat("Incorrect message", events.get(1).getMessage().getFormattedMessage(), equalTo("Hello John"));
@@ -143,6 +146,18 @@ public class LoggerTest {
     }
 
     @Test
+    public void debugChangeLevel_ForClass() {
+        loggerClass.debug("Debug message 1");
+        assertEventCount(app.getEvents(), 1);
+        Configurator.setLevel(LoggerTest.class, Level.OFF);
+        loggerClass.debug("Debug message 2");
+        assertEventCount(app.getEvents(), 1);
+        Configurator.setLevel(LoggerTest.class, Level.DEBUG);
+        loggerClass.debug("Debug message 3");
+        assertEventCount(app.getEvents(), 2);
+    }
+
+    @Test
     public void debugChangeLevel_ForLogger() {
         logger.debug("Debug message 1");
         assertEventCount(app.getEvents(), 1);
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 97dc962..978050e 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -182,7 +182,7 @@
         Add org.apache.logging.log4j.core.appender.AsyncAppender.getAppenders() to more easily port from org.apache.log4j.AsyncAppender.getAllAppenders(). 
       </action>
       <action type="add" dev="ggregory" due-to="Gary Gregory">
-        Add Configurator.setLevel(Logger, Level) and setLevel(String, String).      
+        Add Configurator.setLevel(Logger, Level), setLevel(String, String), and setLevel(Class, Level).
       </action>
       <!-- UPDATES -->
       <action dev="ggregory" type="udpate" due-to="Dependabot">