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