summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-08-26 15:03:56 +0000
committerRobert Gemmell <robbie@apache.org>2010-08-26 15:03:56 +0000
commit654a85e7963634342b5f9ae81c019d6baa3b2803 (patch)
treeb0ffba69e6b672e436501016ec27f36e83dedba8 /java
parentaa17f5797a4ec71e7baa271a22a4e9524238646e (diff)
downloadqpid-python-654a85e7963634342b5f9ae81c019d6baa3b2803.tar.gz
QPID-2802: move Log4jMessageLogger and update its test to account for use of per-message log heirarchies rather than a single default Logger
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@989735 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/Log4jMessageLogger.java (renamed from java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java)5
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java2
-rw-r--r--java/broker/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java134
3 files changed, 85 insertions, 56 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/Log4jMessageLogger.java
index fffd16a812..a0285ebfc4 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/Log4jMessageLogger.java
@@ -18,14 +18,11 @@
*
*
*/
-package org.apache.qpid.server.logging.rawloggers;
+package org.apache.qpid.server.logging;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.qpid.server.configuration.ServerConfiguration;
-import org.apache.qpid.server.logging.AbstractRootMessageLogger;
-import org.apache.qpid.server.logging.LogActor;
-import org.apache.qpid.server.logging.LogSubject;
public class Log4jMessageLogger extends AbstractRootMessageLogger
{
diff --git a/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java b/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
index 5cddfda059..e9d1ead4f7 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
@@ -38,12 +38,12 @@ import org.apache.qpid.server.configuration.ServerConfiguration;
import org.apache.qpid.server.configuration.SystemConfig;
import org.apache.qpid.server.configuration.SystemConfigImpl;
import org.apache.qpid.server.configuration.VirtualHostConfiguration;
+import org.apache.qpid.server.logging.Log4jMessageLogger;
import org.apache.qpid.server.logging.RootMessageLogger;
import org.apache.qpid.server.logging.AbstractRootMessageLogger;
import org.apache.qpid.server.logging.actors.BrokerActor;
import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.logging.messages.BrokerMessages;
-import org.apache.qpid.server.logging.rawloggers.Log4jMessageLogger;
import org.apache.qpid.server.management.ManagedObjectRegistry;
import org.apache.qpid.server.management.NoopManagedObjectRegistry;
import org.apache.qpid.server.plugins.PluginManager;
diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
index 5ccff7ec08..a845bff9ce 100644
--- a/java/broker/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
+++ b/java/broker/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
@@ -20,23 +20,21 @@
*/
package org.apache.qpid.server.logging;
+import java.io.IOException;
+import java.util.LinkedList;
+import java.util.List;
+
import junit.framework.TestCase;
+
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
-import org.apache.qpid.server.logging.rawloggers.Log4jMessageLogger;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
+import org.apache.qpid.server.logging.actors.BrokerActor;
/** Test that the Log4jMessageLogger defaults behave as expected */
public class Log4jMessageLoggerTest extends TestCase
{
- private File _lodgfile;
-
Level _rootLevel;
Log4jTestAppender _appender;
@@ -75,69 +73,103 @@ public class Log4jMessageLoggerTest extends TestCase
}
/**
- * Verify that the default configuraion of Log4jMessageLogger will
- * log a message.
- *
+ * Verify that the Log4jMessageLogger successfully logs a message.
*/
- public void testDefaultLogsMessage()
+ public void testLoggedMessage()
{
- // Create a logger to test
- Log4jMessageLogger logger = new Log4jMessageLogger();
+ Log4jMessageLogger msgLogger = new Log4jMessageLogger();
+ assertTrue("Expected message logger to be enabled", msgLogger.isEnabled());
+
+ testLoggedMessage(msgLogger, true, getName());
+ }
+ /**
+ * Verify that for the given Log4jMessageLogger, after generating a message for the given
+ * log hierarchy that the outcome is as expected.
+ */
+ private String testLoggedMessage(Log4jMessageLogger logger, boolean logExpected, String hierarchy)
+ {
//Create Message for test
String message = "testDefaults";
// Log the message
- logger.rawMessage(message, null, null);
+ logger.rawMessage(message, hierarchy);
- verifyLogPresent(message);
+ if(logExpected)
+ {
+ verifyLogPresent(message);
+ }
+ else
+ {
+ verifyNoLog(message);
+ }
+
+ return message;
}
/**
- * This test verifies that the Log4jMessageLogger does not inherit a logging
- * level from the RootLogger. The Log4jMessageLogger default of INFO
- * will result in logging being presented.
- *
+ * Test that specifying different log hierarchies to be used works as expected.
+ * <p/>
+ * Test this by using one hierarchy and verifying it succeeds, then disabling it and
+ * confirming this takes effect, and finally that using another hierarchy still succeeds.
*/
- public void testLoggerDoesNotInheritRootLevel()
+ public void testMultipleHierarchyUsage()
{
- //Set default logger level to off
- Logger.getRootLogger().setLevel(Level.OFF);
-
- testDefaultLogsMessage();
+ String loggerName1 = getName() + ".TestLogger1";
+ String loggerName2 = getName() + ".TestLogger2";
+
+ // Create a message logger to test
+ Log4jMessageLogger msgLogger = new Log4jMessageLogger();
+ assertTrue("Expected message logger to be enabled", msgLogger.isEnabled());
+
+ //verify that using this hierarchy the message gets logged ok
+ String message = testLoggedMessage(msgLogger, true, loggerName1);
+
+ //now disable that hierarchy in log4j
+ Logger.getLogger(loggerName1).setLevel(Level.OFF);
+
+ //clear the previous message from the test appender
+ _appender.close();
+ verifyNoLog(message);
+
+ //verify that the hierarchy disabling took effect
+ testLoggedMessage(msgLogger, false, loggerName1);
+
+ //now ensure that using a new hierarchy results in the message being output
+ testLoggedMessage(msgLogger, true, loggerName2);
}
- //TODO: use 2 different loggers rather than the default which isnt used anymore
/**
- * Test that changing the logger works.
+ * Test that log4j can be used to manipulate on a per-hierarchy(and thus message) basis
+ * whether a particular status message is enabled.
* <p/>
- * Test this by setting the default logger level to off which has been
- * verified to work by test 'testDefaultsLevelObeyed'
- *
+ * Test this by using two hierarchies, setting one off and one on (info) via log4j directly,
+ * then confirming this gives the expected isMessageEnabled() result. Then reverse the log4j
+ * Levels for the Logger's and ensure the results change as expected.
*/
- public void testDefaultLoggerAdjustment()
+ public void testEnablingAndDisablingMessages()
{
- String loggerName = "TestLogger";
- // Create a logger to test
- Log4jMessageLogger logger = new Log4jMessageLogger();
-
- //Create Message for test
- String message = "testDefaults";
-
- //Disable the default Log4jMessageLogger logger
- Level originalLevel = Logger.getLogger(Log4jMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX).getLevel();
- Logger.getLogger(Log4jMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX).setLevel(Level.OFF);
-
- // Log the message
- logger.rawMessage(message, null, loggerName);
-
- verifyLogPresent(message);
-
- // Restore the logging level
- Logger.getLogger(Log4jMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX).setLevel(originalLevel);
+ String loggerName1 = getName() + ".TestLogger1";
+ String loggerName2 = getName() + ".TestLogger2";
+
+ Logger.getLogger(loggerName1).setLevel(Level.INFO);
+ Logger.getLogger(loggerName2).setLevel(Level.OFF);
+
+ Log4jMessageLogger msgLogger = new Log4jMessageLogger();
+ BrokerActor actor = new BrokerActor(msgLogger);
+
+ assertTrue("Expected message logger to be enabled", msgLogger.isEnabled());
+
+ assertTrue("Message should be enabled", msgLogger.isMessageEnabled(actor, loggerName1));
+ assertFalse("Message should be disabled", msgLogger.isMessageEnabled(actor, loggerName2));
+
+ Logger.getLogger(loggerName1).setLevel(Level.WARN);
+ Logger.getLogger(loggerName2).setLevel(Level.INFO);
+
+ assertFalse("Message should be disabled", msgLogger.isMessageEnabled(actor, loggerName1));
+ assertTrue("Message should be enabled", msgLogger.isMessageEnabled(actor, loggerName2));
}
-
/**
* Check that the Log Message reached log4j
* @param message the message to search for
@@ -175,7 +207,7 @@ public class Log4jMessageLoggerTest extends TestCase
}
}
- assertEquals("No messages expected.", 0, results.size());
+ assertEquals("No message was expected.", 0, results.size());
}
/**