Author: jbonofre
Date: Tue Dec  3 05:17:18 2013
New Revision: 1547287

URL: http://svn.apache.org/r1547287
Log:
[KARAF-2595] Add the DEFAULT keywork support in log level set

Modified:
    karaf/trunk/itests/src/test/java/org/apache/karaf/itests/LogTest.java
    
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
    karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java
    karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java
    
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogMBeanImpl.java
    
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
    
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/internal/SetLogLevelTest.java
    karaf/trunk/manual/src/main/webapp/users-guide/log.conf

Modified: karaf/trunk/itests/src/test/java/org/apache/karaf/itests/LogTest.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/itests/src/test/java/org/apache/karaf/itests/LogTest.java?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- karaf/trunk/itests/src/test/java/org/apache/karaf/itests/LogTest.java 
(original)
+++ karaf/trunk/itests/src/test/java/org/apache/karaf/itests/LogTest.java Tue 
Dec  3 05:17:18 2013
@@ -43,7 +43,6 @@ public class LogTest extends KarafTestSu
     }
 
     @Test
-    @Ignore
     public void setDebugViaMBean() throws Exception {
         assertSetLevel("INFO");
         JMXConnector connector = null;

Modified: 
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- 
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
 (original)
+++ 
karaf/trunk/log/command/src/main/java/org/apache/karaf/log/command/SetLogLevel.java
 Tue Dec  3 05:17:18 2013
@@ -32,7 +32,7 @@ public class SetLogLevel extends LogComm
     String logger;
 
     protected Object doExecute() throws Exception {
-        logService.setLevelSt(logger, level);
+        logService.setLevel(logger, level);
         return null;
     }
 

Modified: 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java 
(original)
+++ karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogMBean.java 
Tue Dec  3 05:17:18 2013
@@ -26,7 +26,7 @@ public interface LogMBean {
     String getLevel();
     Map<String, String> getLevel(String logger);
 
-    // void setLevel(String level);
-    // void setLevel(String logger, String level);
+    void setLevel(String level);
+    void setLevel(String logger, String level);
 
 }

Modified: 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java 
(original)
+++ 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/LogService.java 
Tue Dec  3 05:17:18 2013
@@ -24,13 +24,10 @@ import java.util.Map;
 public interface LogService {
 
     String getLevel();
-    void setLevel(Level level);
+    void setLevel(String level);
 
     Map<String, String> getLevel(String logger);
-    void setLevel(String logger, Level level);
-
-    void setLevelSt(String level);
-    void setLevelSt(String logger, String level);
+    void setLevel(String logger, String level);
     
     void clearEvents();
     Iterable<PaxLoggingEvent> getEvents();

Modified: 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogMBeanImpl.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogMBeanImpl.java?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogMBeanImpl.java
 (original)
+++ 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogMBeanImpl.java
 Tue Dec  3 05:17:18 2013
@@ -46,12 +46,14 @@ public class LogMBeanImpl extends Standa
         return logService.getLevel(logger);
     }
 
+    @Override
     public void setLevel(String level) {
-        this.logService.setLevelSt(level);
+        this.logService.setLevel(level);
     }
 
+    @Override
     public void setLevel(String logger, String level) {
-        this.logService.setLevelSt(logger, level);
+        this.logService.setLevel(logger, level);
     }
 
 }

Modified: 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
 (original)
+++ 
karaf/trunk/log/core/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
 Tue Dec  3 05:17:18 2013
@@ -108,24 +108,29 @@ public class LogServiceImpl implements L
         return loggers;
     }
 
-    public void setLevel(Level level) {
+    public void setLevel(String level) {
         setLevel(null, level);
     }
 
     @SuppressWarnings("unchecked")
-    public void setLevel(String logger, Level logLevel) {
+    public void setLevel(String logger, String level) {
         if (ROOT_LOGGER.equalsIgnoreCase(logger)) {
             logger = null;
         }
 
-        if (logLevel == Level.DEFAULT && logger == null) {
-            throw new RuntimeException("Can not unset the ROOT logger");
+        // make sure both uppercase and lowercase levels are supported
+        level = level.toUpperCase();
+
+        // check if the level is valid
+        Level.valueOf(level);
+
+        if (Level.isDefault(level) && logger == null) {
+            throw new IllegalStateException("Can not unset the ROOT logger");
         }
 
         Configuration cfg = getConfiguration();
         Dictionary props = cfg.getProperties();
 
-        String level = logLevel.toString();
         String val;
         String prop;
         if (logger == null) {
@@ -244,16 +249,6 @@ public class LogServiceImpl implements L
         events.removeAppender(appender);
     }
 
-    @Override
-    public void setLevelSt(String level) {
-        setLevel(convertToLevel(level));
-    }
-
-    @Override
-    public void setLevelSt(String logger, String level) {
-        setLevel(logger, convertToLevel(level));
-    }
-
     public Level convertToLevel(String level) {
         level = level.toUpperCase();
         Level res = Level.valueOf(level);

Modified: 
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/internal/SetLogLevelTest.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/internal/SetLogLevelTest.java?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- 
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/internal/SetLogLevelTest.java
 (original)
+++ 
karaf/trunk/log/core/src/test/java/org/apache/karaf/log/core/internal/SetLogLevelTest.java
 Tue Dec  3 05:17:18 2013
@@ -63,69 +63,67 @@ public class SetLogLevelTest extends Tes
     
     public void testInvalidLogLevel() throws Exception {
         try {
-            // logMBean.setLevel("INVALID");
-            // fail("Exception expected");
+            logMBean.setLevel("INVALID");
+            fail("Exception expected");
         } catch(IllegalArgumentException e) {
             // Expected
         }
     }
     
     public void testSetLogLevel() throws Exception {
-        // logMBean.setLevel("org.apache.karaf.test", "INFO");
-        // assertEquals("INFO", properties.get(PACKAGE_LOGGER));
+        logMBean.setLevel("org.apache.karaf.test", "INFO");
+        assertEquals("INFO", properties.get(PACKAGE_LOGGER));
     }
     
     public void testSetRootLogLevel() throws Exception {
-        // logMBean.setLevel("INFO");
-        // assertEquals("INFO", properties.get(ROOT_LOGGER));
+        logMBean.setLevel("INFO");
+        assertEquals("INFO", properties.get(ROOT_LOGGER));
     }
     
     public void testSetLogLevelLowerCase() throws Exception {
-        // logMBean.setLevel("org.apache.karaf.test", "info");
-        // assertEquals("INFO", properties.get(PACKAGE_LOGGER));
+        logMBean.setLevel("org.apache.karaf.test", "info");
+        assertEquals("INFO", properties.get(PACKAGE_LOGGER));
     }
     
     public void testSetRootLogLevelLowerCase() throws Exception {
-        // logMBean.setLevel("info");
-        // assertEquals("INFO", properties.get(ROOT_LOGGER));
+        logMBean.setLevel("info");
+        assertEquals("INFO", properties.get(ROOT_LOGGER));
     }
     
     public void testChangeLogLevel() throws Exception {
         properties.put(PACKAGE_LOGGER, "DEBUG");
-        // logMBean.setLevel("org.apache.karaf.test", "INFO");
-        // assertEquals("INFO", properties.get(PACKAGE_LOGGER));
+        logMBean.setLevel("org.apache.karaf.test", "INFO");
+        assertEquals("INFO", properties.get(PACKAGE_LOGGER));
     }
     
     public void testChangeRootLogLevel() throws Exception {
         properties.put(ROOT_LOGGER, "DEBUG");
-        // logMBean.setLevel("INFO");
-        // assertEquals("INFO", properties.get(ROOT_LOGGER));
+        logMBean.setLevel("INFO");
+        assertEquals("INFO", properties.get(ROOT_LOGGER));
     }
     
     public void testChangeLogLevelWithAppender() throws Exception {
         properties.put(PACKAGE_LOGGER, "DEBUG, APPENDER1");
-        // logMBean.setLevel("org.apache.karaf.test", "INFO");
-        // assertEquals("INFO, APPENDER1", properties.get(PACKAGE_LOGGER));
+        logMBean.setLevel("org.apache.karaf.test", "INFO");
+        assertEquals("INFO, APPENDER1", properties.get(PACKAGE_LOGGER));
     }
     
     public void testChangeRootLogLevelWithAppender() throws Exception {
         properties.put(ROOT_LOGGER, "DEBUG, APPENDER1");
-        // logMBean.setLevel("INFO");
-        // assertEquals("INFO, APPENDER1", properties.get(ROOT_LOGGER));
+        logMBean.setLevel("INFO");
+        assertEquals("INFO, APPENDER1", properties.get(ROOT_LOGGER));
     }
-    
-    
+
     public void testUnsetLogLevel() throws Exception {
         properties.put(PACKAGE_LOGGER, "DEBUG");
-        // logMBean.setLevel("org.apache.karaf.test", "DEFAULT");
-        // assertFalse("Configuration for logger org.apache.karaf.test has 
been removed", properties.containsKey(PACKAGE_LOGGER));
+        logMBean.setLevel("org.apache.karaf.test", "DEFAULT");
+        assertFalse("Configuration for logger org.apache.karaf.test has been 
removed", properties.containsKey(PACKAGE_LOGGER));
     }
-    
-    
+
     public void testUnsetRootLogLevel() throws Exception {
         properties.put(ROOT_LOGGER, "INFO");
-        // logMBean.setLevel("org.apache.karaf.test", "DEFAULT");
-        // assertEquals("Configuration for root logger should not be removed", 
"INFO", properties.get(ROOT_LOGGER));
+        logMBean.setLevel("org.apache.karaf.test", "DEFAULT");
+        assertEquals("Configuration for root logger should not be removed", 
"INFO", properties.get(ROOT_LOGGER));
     }
     
 }

Modified: karaf/trunk/manual/src/main/webapp/users-guide/log.conf
URL: 
http://svn.apache.org/viewvc/karaf/trunk/manual/src/main/webapp/users-guide/log.conf?rev=1547287&r1=1547286&r2=1547287&view=diff
==============================================================================
--- karaf/trunk/manual/src/main/webapp/users-guide/log.conf (original)
+++ karaf/trunk/manual/src/main/webapp/users-guide/log.conf Tue Dec  3 05:17:18 
2013
@@ -197,14 +197,18 @@ By default, the log level showed is the 
 
 {code}
 karaf@root()> log:get
-INFO
+Logger | Level
+--------------
+ROOT   | INFO
 {code}
 
 You can specify a particular logger using the {{logger}} argument:
 
 {code}
 karaf@root()> log:get ssh
-INFO
+Logger | Level
+--------------
+ssh    | INFO
 {code}
 
 The {{logger}} argument accepts the {{ALL}} keyword to display the log level 
of all logger (as a list).
@@ -219,8 +223,10 @@ you can see the list of loggers with the
 
 {code}
 karaf@root()> log:get ALL
-ROOT: INFO
-my.logger: DEBUG
+Logger    | Level
+-----------------
+ROOT      | INFO
+my.logger | DEBUG
 {code}
 
 The {{log:list}} command is an alias to {{log:get ALL}}.
@@ -253,7 +259,9 @@ By default, it changes the log level of 
 {code}
 karaf@root()> log:set DEBUG
 karaf@root()> log:get
-DEBUG
+Logger | Level
+--------------
+ROOT   | DEBUG
 {code}
 
 You can specify a particular logger using the {{logger}} argument, after the 
{{level}} one:
@@ -261,7 +269,9 @@ You can specify a particular logger usin
 {code}
 karaf@root()> log:set INFO my.logger
 karaf@root()> log:get my.logger
-INFO
+Logger    | Level
+-----------------
+my.logger | INFO
 {code}
 
 The {{level}} argument accepts any Log4j log level: TRACE, DEBUG, INFO, WARN, 
ERROR, FATAL.
@@ -326,7 +336,7 @@ my.logger.custom=appender2
 
 So, both {{my.logger.custom}} and {{my.logger}} use the log level of the 
parent {{rootLogger}}.
 
-It's not posible to use DEFAULT keyword with the {{rootLogger}} and it doesn't 
have parent.
+It's not possible to use DEFAULT keyword with the {{rootLogger}} and it 
doesn't have parent.
 
 h3. {{log:tail}}
 
@@ -354,14 +364,12 @@ The LogMBean object name is {{org.apache
 
 h3. Attributes
 
-The LogMBean doesn't provide any attribute.
+* {{Level}} attribute is the level of the ROOT logger.
 
 h3. Operations
 
-* {{getLevel()}} to get the log level of the root logger.
-* {{getLevel(logger)}} to get the log level of a specific logger.
-* {{setLevel(level)}} to set the log level of the root logger.
-* {{setLevel(level, logger)}} to set the log level of a specific logger.
+* {{getLevel(logger)}} to get the log level of a specific logger. As this 
operation supports the ALL keyword, it returns a Map with the level of each 
logger.
+* {{setLevel(level, logger)}} to set the log level of a specific logger. This 
operation supports the DEFAULT keyword as for the {{log:set}} command.
 
 h2. Advanced configuration
 


Reply via email to