diff options
author | Martin Ritchie <ritchiem@apache.org> | 2009-10-01 11:07:07 +0000 |
---|---|---|
committer | Martin Ritchie <ritchiem@apache.org> | 2009-10-01 11:07:07 +0000 |
commit | a2900c87bcedcc99044a76d932e3fe6d35e02fb1 (patch) | |
tree | b60953ba16d139862a86252120400b0c2dc48272 | |
parent | 82180418279a59fb61e07a23174ead16d3c22283 (diff) | |
download | qpid-python-a2900c87bcedcc99044a76d932e3fe6d35e02fb1.tar.gz |
QPID-2121 : Noticed that the logging level for the test VM was being set directly. This will result in all subsequent tests having WARN logging. Added new setLoggerLevel method to QTC to allow the setting of a Log4j logger level for a given test run. Reverting the changes when the test is complete
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@820606 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | java/systests/src/main/java/org/apache/qpid/server/BrokerStartupTest.java | 15 | ||||
-rw-r--r-- | java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java | 38 |
2 files changed, 46 insertions, 7 deletions
diff --git a/java/systests/src/main/java/org/apache/qpid/server/BrokerStartupTest.java b/java/systests/src/main/java/org/apache/qpid/server/BrokerStartupTest.java index 323bc33f61..e7975f8d24 100644 --- a/java/systests/src/main/java/org/apache/qpid/server/BrokerStartupTest.java +++ b/java/systests/src/main/java/org/apache/qpid/server/BrokerStartupTest.java @@ -78,15 +78,16 @@ public class BrokerStartupTest extends AbstractTestLogging // Add an invalid value _broker += " -l invalid"; - // The release-bin build of the broker uses this log4j configuration - // so set up the broker environment to use it for this test. - // Also include -Dlog4j.debug so we can validate that it picked up this config - setBrokerEnvironment("QPID_OPTS", "-Dlog4j.debug -Dlog4j.configuration=file:" + System.getProperty(QPID_HOME) + "/../broker/src/main/java/log4j.properties"); + // The broker has a built in default log4j configuration set up + // so if the the broker cannot load the -l value it will use default + // use this default. Test that this is correctly loaded, by + // including -Dlog4j.debug so we can validate. + setBrokerEnvironment("QPID_OPTS", "-Dlog4j.debug"); // Disable all client logging so we can test for broker DEBUG only. - Logger.getRootLogger().setLevel(Level.WARN); - Logger.getLogger("qpid.protocol").setLevel(Level.WARN); - Logger.getLogger("org.apache.qpid").setLevel(Level.WARN); + setLoggerLevel(Logger.getRootLogger(), Level.WARN); + setLoggerLevel(Logger.getLogger("qpid.protocol"), Level.WARN); + setLoggerLevel(Logger.getLogger("org.apache.qpid"), Level.WARN); // Set the broker to use info level logging, which is the qpid-server // default. Rather than debug which is the test default. diff --git a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java index 0f2a6cdca0..666c97c9de 100644 --- a/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java +++ b/java/systests/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java @@ -32,6 +32,7 @@ import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry; import org.apache.qpid.server.store.DerbyMessageStore; import org.apache.qpid.url.URLSyntaxException; +import org.apache.log4j.Level; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -76,6 +77,7 @@ public class QpidTestCase extends TestCase private Map<String, String> _propertiesSetForTestOnly = new HashMap<String, String>(); private Map<String, String> _propertiesSetForBroker = new HashMap<String, String>(); + private Map<org.apache.log4j.Logger, Level> _loggerLevelSetForTest = new HashMap<org.apache.log4j.Logger, Level>(); private XMLConfiguration _testConfiguration = new XMLConfiguration(); @@ -192,6 +194,7 @@ public class QpidTestCase extends TestCase /** Map to hold test defined environment properties */ private Map<String, String> _env; protected static final String INDEX = "index"; + ; public QpidTestCase(String name) { @@ -818,6 +821,40 @@ public class QpidTestCase extends TestCase } /** + * Adjust the VMs Log4j Settings just for this test run + * + * @param logger the logger to change + * @param level the level to set + */ + protected void setLoggerLevel(org.apache.log4j.Logger logger, Level level) + { + assertNotNull("Cannot set level of null logger", logger); + assertNotNull("Cannot set Logger("+logger.getName()+") to null level.",level); + + if (!_loggerLevelSetForTest.containsKey(logger)) + { + // Record the current value so we can revert it later. + _loggerLevelSetForTest.put(logger, logger.getLevel()); + } + + logger.setLevel(level); + } + + /** + * Restore the logging levels defined by this test. + */ + protected void revertLoggingLevels() + { + for (org.apache.log4j.Logger logger : _loggerLevelSetForTest.keySet()) + { + logger.setLevel(_loggerLevelSetForTest.get(logger)); + } + + _loggerLevelSetForTest.clear(); + + } + + /** * Check whether the broker is an 0.8 * * @return true if the broker is an 0_8 version, false otherwise. @@ -991,6 +1028,7 @@ public class QpidTestCase extends TestCase } revertSystemProperties(); + revertLoggingLevels(); } /** |