Author: rpopma
Date: Sat Jun 14 13:22:35 2014
New Revision: 1602587

URL: http://svn.apache.org/r1602587
Log:
LOG4J2-637: (JMX) Updating a Logger's level via jConsole now works correctly.

Modified:
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerConfigAdmin.java
    
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
    logging/log4j/log4j2/trunk/src/changes/changes.xml

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerConfigAdmin.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerConfigAdmin.java?rev=1602587&r1=1602586&r2=1602587&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerConfigAdmin.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerConfigAdmin.java
 Sat Jun 14 13:22:35 2014
@@ -21,6 +21,7 @@ import java.util.List;
 import javax.management.ObjectName;
 
 import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AppenderRef;
 import org.apache.logging.log4j.core.config.LoggerConfig;
 import org.apache.logging.log4j.core.util.Assert;
@@ -30,7 +31,7 @@ import org.apache.logging.log4j.core.uti
  */
 public class LoggerConfigAdmin implements LoggerConfigAdminMBean {
 
-    private final String contextName;
+    private final LoggerContext loggerContext;
     private final LoggerConfig loggerConfig;
     private final ObjectName objectName;
 
@@ -41,12 +42,12 @@ public class LoggerConfigAdmin implement
      * @param contextName used in the {@code ObjectName} for this mbean
      * @param loggerConfig the instrumented object
      */
-    public LoggerConfigAdmin(final String contextName, final LoggerConfig 
loggerConfig) {
+    public LoggerConfigAdmin(final LoggerContext loggerContext, final 
LoggerConfig loggerConfig) {
         // super(executor); // no notifications for now
-        this.contextName = Assert.requireNonNull(contextName, "contextName");
+        this.loggerContext = Assert.requireNonNull(loggerContext, 
"loggerContext");
         this.loggerConfig = Assert.requireNonNull(loggerConfig, 
"loggerConfig");
         try {
-            final String ctxName = Server.escape(this.contextName);
+            final String ctxName = Server.escape(loggerContext.getName());
             final String configName = Server.escape(loggerConfig.getName());
             final String name = String.format(PATTERN, ctxName, configName);
             objectName = new ObjectName(name);
@@ -78,6 +79,7 @@ public class LoggerConfigAdmin implement
     @Override
     public void setLevel(final String level) {
         loggerConfig.setLevel(Level.getLevel(level));
+        loggerContext.updateLoggers();
     }
 
     @Override
@@ -88,6 +90,7 @@ public class LoggerConfigAdmin implement
     @Override
     public void setAdditive(final boolean additive) {
         loggerConfig.setAdditive(additive);
+        loggerContext.updateLoggers();
     }
 
     @Override

Modified: 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java?rev=1602587&r1=1602586&r2=1602587&view=diff
==============================================================================
--- 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
 (original)
+++ 
logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
 Sat Jun 14 13:22:35 2014
@@ -320,7 +320,7 @@ public final class Server {
         final Map<String, LoggerConfig> map = 
ctx.getConfiguration().getLoggers();
         for (final String name : map.keySet()) {
             final LoggerConfig cfg = map.get(name);
-            final LoggerConfigAdmin mbean = new 
LoggerConfigAdmin(ctx.getName(), cfg);
+            final LoggerConfigAdmin mbean = new LoggerConfigAdmin(ctx, cfg);
             register(mbs, mbean, mbean.getObjectName());
 
             if (cfg instanceof AsyncLoggerConfig) {

Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1602587&r1=1602586&r2=1602587&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Sat Jun 14 13:22:35 2014
@@ -22,6 +22,9 @@
   </properties>
   <body>
     <release version="2.0-rc2" date="2014-MM-DD" description="Bug fixes and 
enhancements">
+      <action issue="LOG4J2-637" dev="rpopma" type="fix" due-to="Mansoor 
Sajjad, Jon Wilmoth">
+        JMX: Updating a Logger's level via jConsole now correctly takes effect.
+      </action>
       <action issue="LOG4J2-668" dev="rpopma" type="fix">
         Correctly process log events when combining AsyncLoggers with 
AsyncAppender.
       </action>


Reply via email to