summaryrefslogtreecommitdiff
path: root/java/broker/src/main
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-08-26 15:03:33 +0000
committerRobert Gemmell <robbie@apache.org>2010-08-26 15:03:33 +0000
commitaa17f5797a4ec71e7baa271a22a4e9524238646e (patch)
tree8330d9b095b3fb317858174f867dce6c6e9f725a /java/broker/src/main
parentc24a2f22ac211ccbf77b253f727db28bece92d83 (diff)
downloadqpid-python-aa17f5797a4ec71e7baa271a22a4e9524238646e.tar.gz
QPID-2802: Add support for a status-logging hierarchy, such that the Log4jMessageLogger may use this to allow individual on/off toggling of each status message. Combine the RootLogger and RawLogger interfaces.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@989734 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/broker/src/main')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/Main.java4
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java (renamed from java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLoggerImpl.java)34
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/LogMessage.java2
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java31
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/RawMessageLogger.java44
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java23
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java (renamed from java/broker/src/main/java/org/apache/qpid/server/logging/StartupRootMessageLogger.java)28
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java10
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLogger.java53
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/SystemOutMessageLogger.java40
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java4
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java2
12 files changed, 108 insertions, 167 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/Main.java b/java/broker/src/main/java/org/apache/qpid/server/Main.java
index 4bca4e5161..7d7eefc541 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/Main.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/Main.java
@@ -46,7 +46,7 @@ import org.apache.qpid.framing.ProtocolVersion;
import org.apache.qpid.server.configuration.ServerConfiguration;
import org.apache.qpid.server.configuration.management.ConfigurationManagementMBean;
import org.apache.qpid.server.information.management.ServerInformationMBean;
-import org.apache.qpid.server.logging.StartupRootMessageLogger;
+import org.apache.qpid.server.logging.SystemOutMessageLogger;
import org.apache.qpid.server.logging.actors.BrokerActor;
import org.apache.qpid.server.logging.actors.CurrentActor;
import org.apache.qpid.server.logging.management.LoggingManagementMBean;
@@ -223,7 +223,7 @@ public class Main
{
try
{
- CurrentActor.set(new BrokerActor(new StartupRootMessageLogger()));
+ CurrentActor.set(new BrokerActor(new SystemOutMessageLogger()));
startup();
CurrentActor.remove();
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLoggerImpl.java b/java/broker/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java
index a3bf276d1e..545f2adea2 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLoggerImpl.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java
@@ -22,36 +22,38 @@ package org.apache.qpid.server.logging;
import org.apache.qpid.server.configuration.ServerConfiguration;
-public class RootMessageLoggerImpl implements RootMessageLogger
+public abstract class AbstractRootMessageLogger implements RootMessageLogger
{
- private boolean _enabled;
+ public static final String DEFAULT_LOG_HIERARCHY_PREFIX = "qpid.message.";
+
+ private boolean _enabled = true;
- RawMessageLogger _rawLogger;
- private static final String MESSAGE = "MESSAGE ";
+ public AbstractRootMessageLogger()
+ {
- public RootMessageLoggerImpl(ServerConfiguration configuration, RawMessageLogger rawLogger)
+ }
+
+ public AbstractRootMessageLogger(ServerConfiguration config)
{
- _enabled = configuration.getStatusUpdatesEnabled();
- _rawLogger = rawLogger;
+ _enabled = config.getStatusUpdatesEnabled();
}
-
- public boolean isMessageEnabled(LogActor actor, LogSubject subject)
+
+ public boolean isEnabled()
{
return _enabled;
}
- public boolean isMessageEnabled(LogActor actor)
+ public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHierarchy)
{
return _enabled;
}
- public void rawMessage(String message)
+ public boolean isMessageEnabled(LogActor actor, String logHierarchy)
{
- _rawLogger.rawMessage(MESSAGE + message);
+ return _enabled;
}
- public void rawMessage(String message, Throwable throwable)
- {
- _rawLogger.rawMessage(MESSAGE + message, throwable);
- }
+ public abstract void rawMessage(String message, String logHierarchy);
+
+ public abstract void rawMessage(String message, Throwable throwable, String logHierarchy);
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/LogMessage.java b/java/broker/src/main/java/org/apache/qpid/server/logging/LogMessage.java
index 5c112ff100..fa18435fab 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/LogMessage.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/LogMessage.java
@@ -22,5 +22,5 @@ package org.apache.qpid.server.logging;
public interface LogMessage
{
-
+ String getLogHierarchy();
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java
index 6cd29b95fb..db8b24e90e 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/NullRootMessageLogger.java
@@ -20,41 +20,28 @@
*/
package org.apache.qpid.server.logging;
-import org.apache.qpid.server.configuration.ServerConfiguration;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.commons.configuration.ConfigurationException;
-
-public class NullRootMessageLogger extends RootMessageLoggerImpl
+public class NullRootMessageLogger extends AbstractRootMessageLogger
{
- public NullRootMessageLogger() throws ConfigurationException
- {
- super(new ServerConfiguration(new PropertiesConfiguration()), new NullMessageLogger());
- }
-
@Override
- public boolean isMessageEnabled(LogActor actor, LogSubject subject)
+ public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHeirarchy)
{
return false;
}
@Override
- public boolean isMessageEnabled(LogActor actor)
+ public boolean isMessageEnabled(LogActor actor, String logHierarchy)
{
return false;
}
- public static class NullMessageLogger implements RawMessageLogger
+ public void rawMessage(String message, String logHierarchy)
{
- public void rawMessage(String message)
- {
- // drop message
- }
-
- public void rawMessage(String message, Throwable throwable)
- {
- // drop message
- }
+ // drop message
}
+ public void rawMessage(String message, Throwable throwable, String logHierarchy)
+ {
+ // drop message
+ }
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/RawMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/RawMessageLogger.java
deleted file mode 100644
index 7d515f3263..0000000000
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/RawMessageLogger.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- *
- */
-package org.apache.qpid.server.logging;
-
-/**
- * A RawMessage Logger takes the given String and any Throwable and writes the
- * data to its resource.
- */
-public interface RawMessageLogger
-{
-
- /**
- * Log the given message.
- *
- * @param message String to log.
- */
- public void rawMessage(String message);
-
- /**
- * Log the message and formatted stack trace for any Throwable.
- *
- * @param message String to log.
- * @param throwable Throwable for which to provide stack trace.
- */
- public void rawMessage(String message, Throwable throwable);
-} \ No newline at end of file
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java
index 5ac5eab6c4..1431dd1da9 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLogger.java
@@ -28,30 +28,40 @@ package org.apache.qpid.server.logging;
public interface RootMessageLogger
{
/**
+ * Determine whether the MessageLogger is enabled
+ *
+ * @return boolean true if enabled.
+ */
+ boolean isEnabled();
+
+ /**
* Determine if the LogSubject and the LogActor should be
* generating log messages.
- *
- * @param subject The subject of this log request
* @param actor The actor requesting the logging
+ * @param subject The subject of this log request
+ * @param logHierarchy The log hierarchy for this request
+ *
* @return boolean true if the message should be logged.
*/
- boolean isMessageEnabled(LogActor actor, LogSubject subject);
+ boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHierarchy);
/**
* Determine if the LogActor should be generating log messages.
*
* @param actor The actor requesting the logging
+ * @param logHierarchy The log hierarchy for this request
*
* @return boolean true if the message should be logged.
*/
- boolean isMessageEnabled(LogActor actor);
+ boolean isMessageEnabled(LogActor actor, String logHierarchy);
/**
* Log the raw message to the configured logger.
*
* @param message The message to log
+ * @param logHierarchy The log hierarchy for this request
*/
- public void rawMessage(String message);
+ public void rawMessage(String message, String logHierarchy);
/**
* Log the raw message to the configured logger.
@@ -59,6 +69,7 @@ public interface RootMessageLogger
*
* @param message The message to log
* @param throwable Optional Throwable that should provide stact trace
+ * @param logHierarchy The log hierarchy for this request
*/
- void rawMessage(String message, Throwable throwable);
+ void rawMessage(String message, Throwable throwable, String logHierarchy);
} \ No newline at end of file
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/StartupRootMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java
index bfb122985b..b384b3fde3 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/StartupRootMessageLogger.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java
@@ -20,30 +20,32 @@
*/
package org.apache.qpid.server.logging;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.qpid.server.configuration.ServerConfiguration;
-import org.apache.qpid.server.logging.rawloggers.SystemOutMessageLogger;
-public class StartupRootMessageLogger extends RootMessageLoggerImpl
+public class SystemOutMessageLogger extends AbstractRootMessageLogger
{
- public StartupRootMessageLogger() throws ConfigurationException
- {
- super(new ServerConfiguration(new PropertiesConfiguration()),
- new SystemOutMessageLogger());
- }
-
@Override
- public boolean isMessageEnabled(LogActor actor, LogSubject subject)
+ public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHeirarchy)
{
return true;
}
@Override
- public boolean isMessageEnabled(LogActor actor)
+ public boolean isMessageEnabled(LogActor actor, String logHierarchy)
{
return true;
}
+ public void rawMessage(String message, String logHierarchy)
+ {
+ rawMessage(message, null, logHierarchy);
+ }
+ public void rawMessage(String message, Throwable throwable, String logHierarchy)
+ {
+ System.out.println(message);
+ if (throwable != null)
+ {
+ throwable.printStackTrace(System.out);
+ }
+ }
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java b/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java
index 1fa2bd9600..05ac8c4b7e 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/logging/actors/AbstractActor.java
@@ -27,6 +27,8 @@ import org.apache.qpid.server.logging.RootMessageLogger;
public abstract class AbstractActor implements LogActor
{
+ public static final String DEFAULT_MSG_PREFIX = "MESSAGE ";
+
protected RootMessageLogger _rootLogger;
public AbstractActor(RootMessageLogger rootLogger)
@@ -40,17 +42,17 @@ public abstract class AbstractActor implements LogActor
public void message(LogSubject subject, LogMessage message)
{
- if (_rootLogger.isMessageEnabled(this, subject))
+ if (_rootLogger.isMessageEnabled(this, subject, message.getLogHierarchy()))
{
- _rootLogger.rawMessage(getLogMessage() + String.valueOf(subject) + message);
+ _rootLogger.rawMessage(DEFAULT_MSG_PREFIX + getLogMessage() + String.valueOf(subject) + message, message.getLogHierarchy());
}
}
public void message(LogMessage message)
{
- if (_rootLogger.isMessageEnabled(this))
+ if (_rootLogger.isMessageEnabled(this, message.getLogHierarchy()))
{
- _rootLogger.rawMessage(getLogMessage() + message);
+ _rootLogger.rawMessage(DEFAULT_MSG_PREFIX + getLogMessage() + message, message.getLogHierarchy());
}
}
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/rawloggers/Log4jMessageLogger.java
index f996576f31..fffd16a812 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/rawloggers/Log4jMessageLogger.java
@@ -22,35 +22,56 @@ package org.apache.qpid.server.logging.rawloggers;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
-import org.apache.qpid.server.logging.RawMessageLogger;
+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 implements RawMessageLogger
+public class Log4jMessageLogger extends AbstractRootMessageLogger
{
- public static final String DEFAULT_LEVEL = "INFO";
- public static final String DEFAULT_LOGGER = "qpid.message";
- private Level _level;
- private Logger _rawMessageLogger;
-
+ public static final Level LEVEL = Level.toLevel("INFO");
+
public Log4jMessageLogger()
{
- this(DEFAULT_LEVEL, DEFAULT_LOGGER);
+ super();
}
- public Log4jMessageLogger(String level, String logger)
+ public Log4jMessageLogger(ServerConfiguration config)
+ {
+ super(config);
+ }
+
+ @Override
+ public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHierarchy)
{
- _level = Level.toLevel(level);
+ return isMessageEnabled(actor, logHierarchy);
+ }
- _rawMessageLogger = Logger.getLogger(logger);
- _rawMessageLogger.setLevel(_level);
+ @Override
+ public boolean isMessageEnabled(LogActor actor, String logHierarchy)
+ {
+ if(isEnabled())
+ {
+ Logger logger = Logger.getLogger(logHierarchy);
+ return logger.isEnabledFor(LEVEL);
+ }
+ else
+ {
+ return false;
+ }
}
- public void rawMessage(String message)
+ @Override
+ public void rawMessage(String message, String logHierarchy)
{
- rawMessage(message, null);
+ rawMessage(message, null, logHierarchy);
}
- public void rawMessage(String message, Throwable throwable)
+ @Override
+ public void rawMessage(String message, Throwable throwable, String logHierarchy)
{
- _rawMessageLogger.log(_level, message, throwable);
+ Logger logger = Logger.getLogger(logHierarchy);
+
+ logger.log(LEVEL, message, throwable);
}
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/SystemOutMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/SystemOutMessageLogger.java
deleted file mode 100644
index b9f0532d05..0000000000
--- a/java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/SystemOutMessageLogger.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.server.logging.rawloggers;
-
-import org.apache.qpid.server.logging.RawMessageLogger;
-
-public class SystemOutMessageLogger implements RawMessageLogger
-{
- public void rawMessage(String message)
- {
- rawMessage(message, null);
- }
-
- public void rawMessage(String message, Throwable throwable)
- {
- System.out.println(message);
- if (throwable != null)
- {
- throwable.printStackTrace(System.out);
- }
- }
-}
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 bc68fa0c79..5cddfda059 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
@@ -39,7 +39,7 @@ 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.RootMessageLogger;
-import org.apache.qpid.server.logging.RootMessageLoggerImpl;
+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;
@@ -249,7 +249,7 @@ public abstract class ApplicationRegistry implements IApplicationRegistry
public void initialise(int instanceID) throws Exception
{
- _rootMessageLogger = new RootMessageLoggerImpl(_configuration, new Log4jMessageLogger());
+ _rootMessageLogger = new Log4jMessageLogger(_configuration);
_registryName = String.valueOf(instanceID);
// Set the Actor for current log messages
diff --git a/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java b/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java
index 1740e3db1a..d8f44c9f7f 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionImpl.java
@@ -362,7 +362,7 @@ public abstract class SubscriptionImpl implements Subscription, FlowCreditManage
_logActor = new SubscriptionActor(CurrentActor.get().getRootMessageLogger(), this);
if (CurrentActor.get().getRootMessageLogger().
- isMessageEnabled(CurrentActor.get(), _logSubject))
+ isMessageEnabled(CurrentActor.get(), _logSubject, SubscriptionMessages.CREATE_LOG_HIERARCHY))
{
// Get the string value of the filters
String filterLogString = null;