From aa17f5797a4ec71e7baa271a22a4e9524238646e Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Thu, 26 Aug 2010 15:03:33 +0000 Subject: 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 --- java/broker/etc/log4j.xml | 12 +- .../src/main/java/org/apache/qpid/server/Main.java | 4 +- .../server/logging/AbstractRootMessageLogger.java | 59 +++++ .../org/apache/qpid/server/logging/LogMessage.java | 2 +- .../qpid/server/logging/NullRootMessageLogger.java | 31 +-- .../qpid/server/logging/RawMessageLogger.java | 44 ---- .../qpid/server/logging/RootMessageLogger.java | 23 +- .../qpid/server/logging/RootMessageLoggerImpl.java | 57 ----- .../server/logging/StartupRootMessageLogger.java | 49 ----- .../server/logging/SystemOutMessageLogger.java | 51 +++++ .../qpid/server/logging/actors/AbstractActor.java | 10 +- .../logging/rawloggers/Log4jMessageLogger.java | 53 +++-- .../logging/rawloggers/SystemOutMessageLogger.java | 40 ---- .../qpid/server/registry/ApplicationRegistry.java | 4 +- .../qpid/server/subscription/SubscriptionImpl.java | 2 +- .../server/logging/Log4jMessageLoggerTest.java | 239 +++++++++++++++++++++ .../server/logging/RootMessageLoggerImplTest.java | 86 -------- .../qpid/server/logging/UnitTestMessageLogger.java | 72 +++++++ .../server/logging/UnitTestMessageLoggerTest.java | 103 +++++++++ .../logging/actors/AMQPChannelActorTest.java | 63 +----- .../logging/actors/AMQPConnectionActorTest.java | 5 + .../server/logging/actors/BaseActorTestCase.java | 42 +++- .../actors/BaseConnectionActorTestCase.java | 2 - .../server/logging/actors/CurrentActorTest.java | 48 +---- .../server/logging/actors/ManagementActorTest.java | 17 +- .../qpid/server/logging/actors/QueueActorTest.java | 17 +- .../logging/actors/SubscriptionActorTest.java | 24 +-- .../logging/messages/AbstractTestMessages.java | 20 +- .../logging/rawloggers/Log4jMessageLoggerTest.java | 238 -------------------- .../logging/rawloggers/UnitTestMessageLogger.java | 60 ------ .../rawloggers/UnitTestMessageLoggerTest.java | 102 --------- .../logging/subjects/AbstractTestLogSubject.java | 16 +- .../qpid/server/util/InternalBrokerBaseCase.java | 4 +- .../qpid/server/logging/messages/LogMessages.vm | 18 ++ .../qpid/server/logging/AbstractTestLogging.java | 2 +- java/test-profiles/log4j-test.xml | 4 + 36 files changed, 706 insertions(+), 917 deletions(-) create mode 100644 java/broker/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java delete mode 100644 java/broker/src/main/java/org/apache/qpid/server/logging/RawMessageLogger.java delete mode 100644 java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLoggerImpl.java delete mode 100644 java/broker/src/main/java/org/apache/qpid/server/logging/StartupRootMessageLogger.java create mode 100644 java/broker/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java delete mode 100644 java/broker/src/main/java/org/apache/qpid/server/logging/rawloggers/SystemOutMessageLogger.java create mode 100644 java/broker/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java delete mode 100644 java/broker/src/test/java/org/apache/qpid/server/logging/RootMessageLoggerImplTest.java create mode 100644 java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java create mode 100644 java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java delete mode 100644 java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java delete mode 100644 java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLogger.java delete mode 100644 java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLoggerTest.java (limited to 'java') diff --git a/java/broker/etc/log4j.xml b/java/broker/etc/log4j.xml index cfdfacb290..458329571e 100644 --- a/java/broker/etc/log4j.xml +++ b/java/broker/etc/log4j.xml @@ -103,6 +103,12 @@ + + + + + + @@ -112,9 +118,9 @@ - - - + + + 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/AbstractRootMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java new file mode 100644 index 0000000000..545f2adea2 --- /dev/null +++ b/java/broker/src/main/java/org/apache/qpid/server/logging/AbstractRootMessageLogger.java @@ -0,0 +1,59 @@ +/* + * 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; + +import org.apache.qpid.server.configuration.ServerConfiguration; + +public abstract class AbstractRootMessageLogger implements RootMessageLogger +{ + public static final String DEFAULT_LOG_HIERARCHY_PREFIX = "qpid.message."; + + private boolean _enabled = true; + + public AbstractRootMessageLogger() + { + + } + + public AbstractRootMessageLogger(ServerConfiguration config) + { + _enabled = config.getStatusUpdatesEnabled(); + } + + public boolean isEnabled() + { + return _enabled; + } + + public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHierarchy) + { + return _enabled; + } + + public boolean isMessageEnabled(LogActor actor, String logHierarchy) + { + return _enabled; + } + + 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 @@ -27,31 +27,41 @@ 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/RootMessageLoggerImpl.java b/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLoggerImpl.java deleted file mode 100644 index a3bf276d1e..0000000000 --- a/java/broker/src/main/java/org/apache/qpid/server/logging/RootMessageLoggerImpl.java +++ /dev/null @@ -1,57 +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; - -import org.apache.qpid.server.configuration.ServerConfiguration; - -public class RootMessageLoggerImpl implements RootMessageLogger -{ - private boolean _enabled; - - RawMessageLogger _rawLogger; - private static final String MESSAGE = "MESSAGE "; - - public RootMessageLoggerImpl(ServerConfiguration configuration, RawMessageLogger rawLogger) - { - _enabled = configuration.getStatusUpdatesEnabled(); - _rawLogger = rawLogger; - } - - public boolean isMessageEnabled(LogActor actor, LogSubject subject) - { - return _enabled; - } - - public boolean isMessageEnabled(LogActor actor) - { - return _enabled; - } - - public void rawMessage(String message) - { - _rawLogger.rawMessage(MESSAGE + message); - } - - public void rawMessage(String message, Throwable throwable) - { - _rawLogger.rawMessage(MESSAGE + message, throwable); - } -} 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/StartupRootMessageLogger.java deleted file mode 100644 index bfb122985b..0000000000 --- a/java/broker/src/main/java/org/apache/qpid/server/logging/StartupRootMessageLogger.java +++ /dev/null @@ -1,49 +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; - -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 StartupRootMessageLogger() throws ConfigurationException - { - super(new ServerConfiguration(new PropertiesConfiguration()), - new SystemOutMessageLogger()); - } - - @Override - public boolean isMessageEnabled(LogActor actor, LogSubject subject) - { - return true; - } - - @Override - public boolean isMessageEnabled(LogActor actor) - { - return true; - } - - -} diff --git a/java/broker/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java b/java/broker/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java new file mode 100644 index 0000000000..b384b3fde3 --- /dev/null +++ b/java/broker/src/main/java/org/apache/qpid/server/logging/SystemOutMessageLogger.java @@ -0,0 +1,51 @@ +/* + * + * 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; + + +public class SystemOutMessageLogger extends AbstractRootMessageLogger +{ + @Override + public boolean isMessageEnabled(LogActor actor, LogSubject subject, String logHeirarchy) + { + return true; + } + + @Override + 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; 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 new file mode 100644 index 0000000000..5ccff7ec08 --- /dev/null +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java @@ -0,0 +1,239 @@ +/* + * 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; + +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; + +/** Test that the Log4jMessageLogger defaults behave as expected */ +public class Log4jMessageLoggerTest extends TestCase +{ + private File _lodgfile; + + Level _rootLevel; + Log4jTestAppender _appender; + + @Override + public void setUp() throws IOException + { + // Setup a file for logging + _appender = new Log4jTestAppender(); + + Logger root = Logger.getRootLogger(); + root.addAppender(_appender); + + _rootLevel = Logger.getRootLogger().getLevel(); + if (_rootLevel != Level.INFO) + { + root.setLevel(Level.INFO); + root.warn("Root Logger set to:" + _rootLevel + " Resetting to INFO for test."); + } + root.warn("Adding Test Appender:" + _appender); + } + + @Override + public void tearDown() + { + Logger root = Logger.getRootLogger(); + root.warn("Removing Test Appender:" + _appender); + root.warn("Resetting Root Level to : " + _rootLevel); + + Logger.getRootLogger().setLevel(_rootLevel); + + Logger.getRootLogger().removeAppender(_appender); + + //Call close on our appender. This will clear the log messages + // from Memory + _appender.close(); + } + + /** + * Verify that the default configuraion of Log4jMessageLogger will + * log a message. + * + */ + public void testDefaultLogsMessage() + { + // Create a logger to test + Log4jMessageLogger logger = new Log4jMessageLogger(); + + //Create Message for test + String message = "testDefaults"; + + // Log the message + logger.rawMessage(message, null, null); + + verifyLogPresent(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. + * + */ + public void testLoggerDoesNotInheritRootLevel() + { + //Set default logger level to off + Logger.getRootLogger().setLevel(Level.OFF); + + testDefaultLogsMessage(); + } + + //TODO: use 2 different loggers rather than the default which isnt used anymore + /** + * Test that changing the logger works. + *

+ * Test this by setting the default logger level to off which has been + * verified to work by test 'testDefaultsLevelObeyed' + * + */ + public void testDefaultLoggerAdjustment() + { + 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); + } + + + /** + * Check that the Log Message reached log4j + * @param message the message to search for + */ + private void verifyLogPresent(String message) + { + List results = findMessageInLog(message); + + //Validate we only got one message + assertEquals("The result set was not as expected.", 1, results.size()); + + // Validate message + String line = results.get(0); + + assertNotNull("No Message retrieved from log file", line); + assertTrue("Message not contained in log.:" + line, + line.contains(message)); + } + + /** + * Check that the given Message is not present in the log4j records. + * @param message the message to search for + */ + private void verifyNoLog(String message) + { + List results = findMessageInLog(message); + + if (results.size() > 0) + { + System.err.println("Unexpected Log messages"); + + for (String msg : results) + { + System.err.println(msg); + } + } + + assertEquals("No messages expected.", 0, results.size()); + } + + /** + * Get the appenders list of events and return a list of all the messages + * that contain the given message + * + * @param message the search string + * @return The list of all logged messages that contain the search string. + */ + private List findMessageInLog(String message) + { + List log = _appender.getLog(); + + // Search Results for requested message + List result = new LinkedList(); + + for (LoggingEvent event : log) + { + if (String.valueOf(event.getMessage()).contains(message)) + { + result.add(String.valueOf(event.getMessage())); + } + } + + return result; + } + + + /** + * Log4j Appender that simply records all the Logging Events so we can + * verify that the above logging will make it to log4j in a unit test. + */ + private class Log4jTestAppender extends AppenderSkeleton + { + List _log = new LinkedList(); + + protected void append(LoggingEvent loggingEvent) + { + _log.add(loggingEvent); + } + + public void close() + { + _log.clear(); + } + + /** + * @return the list of LoggingEvents that have occured in this Appender + */ + public List getLog() + { + return _log; + } + + public boolean requiresLayout() + { + return false; + } + } +} + diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/RootMessageLoggerImplTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/RootMessageLoggerImplTest.java deleted file mode 100644 index 012a590687..0000000000 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/RootMessageLoggerImplTest.java +++ /dev/null @@ -1,86 +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; - -import junit.framework.TestCase; -import org.apache.commons.configuration.Configuration; -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.UnitTestMessageLogger; - -import java.util.List; - -public class RootMessageLoggerImplTest extends TestCase -{ - - RootMessageLogger _rootLogger; - UnitTestMessageLogger _rawLogger; - - public void setUp() throws ConfigurationException - { - Configuration config = new PropertiesConfiguration(); - ServerConfiguration serverConfig = new ServerConfiguration(config); - - _rawLogger = new UnitTestMessageLogger(); - - _rootLogger = new RootMessageLoggerImpl(serverConfig, _rawLogger); - } - - public void tearDown() - { - _rawLogger.clearLogMessages(); - } - - public void testLog() - { - String message = "test logging"; - - _rootLogger.rawMessage(message); - - List logs = _rawLogger.getLogMessages(); - - assertEquals("Message log size not as expected.", 1, logs.size()); - - assertTrue(logs.get(0).toString().contains(message)); - } - - public void testLogWithThrowable() - { - String message = "test logging"; - Exception exception = new Exception("Test"); - - _rootLogger.rawMessage(message, exception); - - List logs = _rawLogger.getLogMessages(); - - assertEquals("Message log size not as expected.", 2, logs.size()); - - String loggedMessage = (String) logs.get(0); - assertTrue("Message not found in log:" + loggedMessage, - loggedMessage.contains(message)); - - Exception fromLog = (Exception) logs.get(1); - assertEquals(exception.getMessage(), fromLog.getMessage()); - } - - -} diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java b/java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java new file mode 100644 index 0000000000..3752dcb37e --- /dev/null +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLogger.java @@ -0,0 +1,72 @@ +/* + * 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; + +import java.util.LinkedList; +import java.util.List; + +import org.apache.qpid.server.configuration.ServerConfiguration; +import org.apache.qpid.server.logging.AbstractRootMessageLogger; + +public class UnitTestMessageLogger extends AbstractRootMessageLogger +{ + List _log; + + { + _log = new LinkedList(); + } + + public UnitTestMessageLogger() + { + + } + + public UnitTestMessageLogger(ServerConfiguration config) + { + super(config); + } + + public void rawMessage(String message, String logHierarchy) + { + _log.add(message); + } + + public void rawMessage(String message, Throwable throwable, String logHierarchy) + { + _log.add(message); + + if(throwable != null) + { + _log.add(throwable); + } + } + + + public List getLogMessages() + { + return _log; + } + + public void clearLogMessages() + { + _log.clear(); + } +} diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java new file mode 100644 index 0000000000..e2e112be8f --- /dev/null +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/UnitTestMessageLoggerTest.java @@ -0,0 +1,103 @@ +/* + * + * 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; + +import junit.framework.TestCase; + +import java.util.List; + +/** + * Test: UnitTestMessageLoggerTest + * + * This test verifies that UnitTestMessageLogger adheres to its interface. + * + * Messages are logged, and Throwables recorded in an array that can be + * retrieved and cleared. + * + */ +public class UnitTestMessageLoggerTest extends TestCase +{ + private static final String TEST_MESSAGE = "Test"; + private static final String TEST_THROWABLE = "Test Throwable"; + private static final String TEST_HIERARCHY = "test.hierarchy"; + + public void testRawMessage() + { + UnitTestMessageLogger logger = new UnitTestMessageLogger(); + + assertEquals("Messages logged before test start", 0, + logger.getLogMessages().size()); + + // Log a message + logger.rawMessage(TEST_MESSAGE, TEST_HIERARCHY); + + List messages = logger.getLogMessages(); + + assertEquals("Expected to have 1 messages logged", 1, messages.size()); + + assertEquals("First message not what was logged", + TEST_MESSAGE, messages.get(0)); + } + + public void testRawMessageWithThrowable() + { + UnitTestMessageLogger logger = new UnitTestMessageLogger(); + + assertEquals("Messages logged before test start", 0, + logger.getLogMessages().size()); + + // Log a message + Throwable throwable = new Throwable(TEST_THROWABLE); + + logger.rawMessage(TEST_MESSAGE, throwable, TEST_HIERARCHY); + + List messages = logger.getLogMessages(); + + assertEquals("Expected to have 2 entries", 2, messages.size()); + + assertEquals("Message text not what was logged", + TEST_MESSAGE, messages.get(0)); + + assertEquals("Message throwable not what was logged", + TEST_THROWABLE, ((Throwable) messages.get(1)).getMessage()); + + } + + public void testClear() + { + UnitTestMessageLogger logger = new UnitTestMessageLogger(); + + assertEquals("Messages logged before test start", 0, + logger.getLogMessages().size()); + + // Log a message + logger.rawMessage(TEST_MESSAGE, null, TEST_HIERARCHY); + + assertEquals("Expected to have 1 messages logged", + 1, logger.getLogMessages().size()); + + logger.clearLogMessages(); + + assertEquals("Expected to have no messagse after a clear", + 0, logger.getLogMessages().size()); + + } +} diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java index 2b684ac51b..c7727bfa1a 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPChannelActorTest.java @@ -20,17 +20,12 @@ */ package org.apache.qpid.server.logging.actors; -import org.apache.commons.configuration.Configuration; +import java.util.List; + import org.apache.commons.configuration.ConfigurationException; -import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.qpid.AMQException; -import org.apache.qpid.server.configuration.ServerConfiguration; -import org.apache.qpid.server.logging.rawloggers.UnitTestMessageLogger; -import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.LogMessage; -import org.apache.qpid.server.AMQChannel; - -import java.util.List; +import org.apache.qpid.server.logging.LogSubject; /** * Test : AMQPChannelActorTest @@ -78,7 +73,7 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase startBrokerNow(); - final String message = sendTestMessage(); + final String message = sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); @@ -104,31 +99,6 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase } - /** - * Log a message using the test Actor - * @return the logged message - */ - private String sendTestMessage() - { - final String message = "test logging"; - - _amqpActor.message(new LogSubject() - { - public String toString() - { - return "[AMQPActorTest]"; - } - - }, new LogMessage() - { - public String toString() - { - return message; - } - }); - return message; - } - /** * Test that if logging is configured to be off in the configuration that * no logging is presented @@ -139,13 +109,10 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase { _configXml.setProperty("status-updates", "OFF"); - _rawLogger = new UnitTestMessageLogger(); - // Start the broker now. startBrokerNow(); - - sendTestMessage(); + sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); @@ -163,11 +130,9 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase { _configXml.setProperty("status-updates", "OfF"); - _rawLogger = new UnitTestMessageLogger(); - startBrokerNow(); - sendTestMessage(); + sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); @@ -185,11 +150,9 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase { _configXml.setProperty("status-updates", "Off"); - _rawLogger = new UnitTestMessageLogger(); - startBrokerNow(); - sendTestMessage(); + sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); @@ -207,11 +170,9 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase { _configXml.setProperty("status-updates", "ofF"); - _rawLogger = new UnitTestMessageLogger(); - startBrokerNow(); - sendTestMessage(); + sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); @@ -229,11 +190,9 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase { _configXml.setProperty("status-updates", "off"); - _rawLogger = new UnitTestMessageLogger(); - startBrokerNow(); - sendTestMessage(); + sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); @@ -251,11 +210,9 @@ public class AMQPChannelActorTest extends BaseConnectionActorTestCase { _configXml.setProperty("status-updates", "oFf"); - _rawLogger = new UnitTestMessageLogger(); - startBrokerNow(); - sendTestMessage(); + sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java index 3e82eea51a..2cb950ee30 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/AMQPConnectionActorTest.java @@ -124,6 +124,11 @@ public class AMQPConnectionActorTest extends BaseConnectionActorTestCase { return message; } + + public String getLogHierarchy() + { + return "test.hieracrchy"; + } }); return message; } diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java index 5f5cc4fca3..6a72a7aaf9 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseActorTestCase.java @@ -21,10 +21,11 @@ package org.apache.qpid.server.logging.actors; import org.apache.qpid.server.configuration.ServerConfiguration; -import org.apache.qpid.server.logging.rawloggers.UnitTestMessageLogger; +import org.apache.qpid.server.logging.LogMessage; +import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.RootMessageLogger; -import org.apache.qpid.server.logging.RootMessageLoggerImpl; import org.apache.qpid.server.logging.LogActor; +import org.apache.qpid.server.logging.UnitTestMessageLogger; import org.apache.qpid.server.util.InternalBrokerBaseCase; @@ -45,10 +46,8 @@ public class BaseActorTestCase extends InternalBrokerBaseCase { super.createBroker(); - _rawLogger = new UnitTestMessageLogger(); - - _rootLogger = - new RootMessageLoggerImpl(_configuration, _rawLogger); + _rawLogger = new UnitTestMessageLogger(_configuration); + _rootLogger = _rawLogger; } public void tearDown() throws Exception @@ -58,4 +57,35 @@ public class BaseActorTestCase extends InternalBrokerBaseCase super.tearDown(); } + public String sendTestLogMessage(LogActor actor) + { + String message = "Test logging: " + getName(); + sendTestLogMessage(actor, message); + + return message; + } + + public void sendTestLogMessage(LogActor actor, final String message) + { + actor.message(new LogSubject() + { + public String toString() + { + return message; + } + + }, new LogMessage() + { + public String toString() + { + return message; + } + + public String getLogHierarchy() + { + return "test.hierarchy"; + } + }); + } + } diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseConnectionActorTestCase.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseConnectionActorTestCase.java index bfdf48337d..1b95d53702 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseConnectionActorTestCase.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/BaseConnectionActorTestCase.java @@ -30,6 +30,4 @@ public class BaseConnectionActorTestCase extends BaseActorTestCase _amqpActor = new AMQPConnectionActor(_session, _rootLogger); } - - } diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java index ae2ea5fb69..95a5610917 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/CurrentActorTest.java @@ -23,10 +23,7 @@ package org.apache.qpid.server.logging.actors; import org.apache.commons.configuration.ConfigurationException; import org.apache.qpid.AMQException; import org.apache.qpid.server.AMQChannel; -import org.apache.qpid.server.logging.LogMessage; -import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.NullRootMessageLogger; -import org.apache.qpid.server.registry.ApplicationRegistry; /** * Test : CurrentActorTest @@ -92,20 +89,7 @@ public class CurrentActorTest extends BaseConnectionActorTestCase CurrentActor.set(connectionActor); //Use the Actor to send a simple message - CurrentActor.get().message(new LogSubject() - { - public String toString() - { - return "[CurrentActorTest] "; - } - - }, new LogMessage() - { - public String toString() - { - return "Connection Log Msg"; - } - }); + sendTestLogMessage(CurrentActor.get()); // Verify it was the same actor as we set earlier assertEquals("Retrieved actor is not as expected ", @@ -128,20 +112,7 @@ public class CurrentActorTest extends BaseConnectionActorTestCase CurrentActor.set(channelActor); //Use the Actor to send a simple message - CurrentActor.get().message(new LogSubject() - { - public String toString() - { - return "[CurrentActorTest] "; - } - - }, new LogMessage() - { - public String toString() - { - return "Channel Log Msg"; - } - }); + sendTestLogMessage(CurrentActor.get()); // Verify it was the same actor as we set earlier assertEquals("Retrieved actor is not as expected ", @@ -263,20 +234,7 @@ public class CurrentActorTest extends BaseConnectionActorTestCase CurrentActor.set(actor); //Use the Actor to send a simple message - CurrentActor.get().message(new LogSubject() - { - public String toString() - { - return "[CurrentActorTest] "; - } - - }, new LogMessage() - { - public String toString() - { - return "Running Thread:" + count; - } - }); + sendTestLogMessage(CurrentActor.get()); // Verify it was the same actor as we set earlier assertEquals("Retrieved actor is not as expected ", diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java index dec59487db..033ae3b4b3 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/ManagementActorTest.java @@ -71,22 +71,7 @@ public class ManagementActorTest extends BaseActorTestCase */ public void testConnection() { - final String message = "test logging"; - - _amqpActor.message(new LogSubject() - { - public String toString() - { - return "[AMQPActorTest]"; - } - - }, new LogMessage() - { - public String toString() - { - return message; - } - }); + final String message = sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java index 703149a760..8cb74ab29b 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/QueueActorTest.java @@ -48,22 +48,7 @@ public class QueueActorTest extends BaseConnectionActorTestCase */ public void testQueueActor() { - final String message = "test logging"; - - _amqpActor.message(new LogSubject() - { - public String toString() - { - return "[AMQPActorTest]"; - } - - }, new LogMessage() - { - public String toString() - { - return message; - } - }); + final String message = sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java index c3f3d05549..d9246b13ec 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/actors/SubscriptionActorTest.java @@ -20,14 +20,11 @@ */ package org.apache.qpid.server.logging.actors; -import org.apache.qpid.server.configuration.ServerConfiguration; +import java.util.List; + import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.subscription.MockSubscription; -import org.apache.qpid.server.queue.MockAMQQueue; -import org.apache.qpid.AMQException; - -import java.util.List; /** * Test : AMQPConnectionActorTest @@ -63,22 +60,7 @@ public class SubscriptionActorTest extends BaseConnectionActorTestCase */ public void testSubscription() { - final String message = "test logging"; - - _amqpActor.message(new LogSubject() - { - public String toString() - { - return "[AMQPActorTest]"; - } - - }, new LogMessage() - { - public String toString() - { - return message; - } - }); + final String message = sendTestLogMessage(_amqpActor); List logs = _rawLogger.getLogMessages(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java b/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java index 9acbe72cb3..d3e762bdfa 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/messages/AbstractTestMessages.java @@ -20,23 +20,18 @@ */ package org.apache.qpid.server.logging.messages; -import junit.framework.TestCase; +import java.util.List; + import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.PropertiesConfiguration; -import org.apache.qpid.server.configuration.ServerConfiguration; import org.apache.qpid.server.logging.LogActor; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; -import org.apache.qpid.server.logging.RootMessageLogger; -import org.apache.qpid.server.logging.RootMessageLoggerImpl; +import org.apache.qpid.server.logging.UnitTestMessageLogger; import org.apache.qpid.server.logging.actors.TestLogActor; -import org.apache.qpid.server.logging.rawloggers.UnitTestMessageLogger; import org.apache.qpid.server.logging.subjects.TestBlankSubject; -import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.util.InternalBrokerBaseCase; -import java.util.List; - public abstract class AbstractTestMessages extends InternalBrokerBaseCase { protected Configuration _config = new PropertiesConfiguration(); @@ -50,15 +45,9 @@ public abstract class AbstractTestMessages extends InternalBrokerBaseCase { super.setUp(); - ServerConfiguration serverConfig = new ServerConfiguration(_config); - - serverConfig.getConfig().setProperty(ServerConfiguration.STATUS_UPDATES, "on"); - _logger = new UnitTestMessageLogger(); - RootMessageLogger rootLogger = - new RootMessageLoggerImpl(serverConfig, _logger); - _actor = new TestLogActor(rootLogger); + _actor = new TestLogActor(_logger); } protected List performLog() @@ -84,6 +73,7 @@ public abstract class AbstractTestMessages extends InternalBrokerBaseCase */ protected void validateLogMessage(List logs, String tag, String[] expected) { +System.out.println("===============" + logs.get(0)); assertEquals("Log has incorrect message count", 1, logs.size()); //We trim() here as we don't care about extra white space at the end of the log message diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java deleted file mode 100644 index 4b69a46793..0000000000 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/Log4jMessageLoggerTest.java +++ /dev/null @@ -1,238 +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 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 java.io.File; -import java.io.IOException; -import java.util.LinkedList; -import java.util.List; - -/** Test that the Log4jMessageLogger defaults behave as expected */ -public class Log4jMessageLoggerTest extends TestCase -{ - private File _lodgfile; - - Level _rootLevel; - Log4jTestAppender _appender; - - @Override - public void setUp() throws IOException - { - // Setup a file for logging - _appender = new Log4jTestAppender(); - - Logger root = Logger.getRootLogger(); - root.addAppender(_appender); - - _rootLevel = Logger.getRootLogger().getLevel(); - if (_rootLevel != Level.INFO) - { - root.setLevel(Level.INFO); - root.warn("Root Logger set to:" + _rootLevel + " Resetting to INFO for test."); - } - root.warn("Adding Test Appender:" + _appender); - } - - @Override - public void tearDown() - { - Logger root = Logger.getRootLogger(); - root.warn("Removing Test Appender:" + _appender); - root.warn("Resetting Root Level to : " + _rootLevel); - - Logger.getRootLogger().setLevel(_rootLevel); - - Logger.getRootLogger().removeAppender(_appender); - - //Call close on our appender. This will clear the log messages - // from Memory - _appender.close(); - } - - /** - * Verify that the default configuraion of Log4jMessageLogger will - * log a message. - * - */ - public void testDefaultLogsMessage() - { - // Create a logger to test - Log4jMessageLogger logger = new Log4jMessageLogger(); - - //Create Message for test - String message = "testDefaults"; - - // Log the message - logger.rawMessage(message); - - verifyLogPresent(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. - * - */ - public void testLoggerDoesNotInheritRootLevel() - { - //Set default logger level to off - Logger.getRootLogger().setLevel(Level.OFF); - - testDefaultLogsMessage(); - } - - /** - * Test that changing the logger works. - *

- * Test this by setting the default logger level to off which has been - * verified to work by test 'testDefaultsLevelObeyed' - * - */ - public void testDefaultLoggerAdjustment() - { - String loggerName = "TestLogger"; - // Create a logger to test - Log4jMessageLogger logger = new Log4jMessageLogger(Log4jMessageLogger.DEFAULT_LEVEL, loggerName); - - //Create Message for test - String message = "testDefaults"; - - //Disable the default Log4jMessageLogger logger - Level originalLevel = Logger.getLogger(Log4jMessageLogger.DEFAULT_LOGGER).getLevel(); - Logger.getLogger(Log4jMessageLogger.DEFAULT_LOGGER).setLevel(Level.OFF); - - // Log the message - logger.rawMessage(message); - - verifyLogPresent(message); - - // Restore the logging level - Logger.getLogger(Log4jMessageLogger.DEFAULT_LOGGER).setLevel(originalLevel); - } - - - /** - * Check that the Log Message reached log4j - * @param message the message to search for - */ - private void verifyLogPresent(String message) - { - List results = findMessageInLog(message); - - //Validate we only got one message - assertEquals("The result set was not as expected.", 1, results.size()); - - // Validate message - String line = results.get(0); - - assertNotNull("No Message retrieved from log file", line); - assertTrue("Message not contained in log.:" + line, - line.contains(message)); - } - - /** - * Check that the given Message is not present in the log4j records. - * @param message the message to search for - */ - private void verifyNoLog(String message) - { - List results = findMessageInLog(message); - - //Validate we only got one message - if (results.size() > 0) - { - System.err.println("Unexpected Log messages"); - - for (String msg : results) - { - System.err.println(msg); - } - } - - assertEquals("No messages expected.", 0, results.size()); - } - - /** - * Get the appenders list of events and return a list of all the messages - * that contain the given message - * - * @param message the search string - * @return The list of all logged messages that contain the search string. - */ - private List findMessageInLog(String message) - { - List log = _appender.getLog(); - - // Search Results for requested message - List result = new LinkedList(); - - for (LoggingEvent event : log) - { - if (String.valueOf(event.getMessage()).contains(message)) - { - result.add(String.valueOf(event.getMessage())); - } - } - - return result; - } - - - /** - * Log4j Appender that simply records all the Logging Events so we can - * verify that the above logging will make it to log4j in a unit test. - */ - private class Log4jTestAppender extends AppenderSkeleton - { - List _log = new LinkedList(); - - protected void append(LoggingEvent loggingEvent) - { - _log.add(loggingEvent); - } - - public void close() - { - _log.clear(); - } - - /** - * @return the list of LoggingEvents that have occured in this Appender - */ - public List getLog() - { - return _log; - } - - public boolean requiresLayout() - { - return false; - } - } -} - diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLogger.java b/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLogger.java deleted file mode 100644 index df50cfb57a..0000000000 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLogger.java +++ /dev/null @@ -1,60 +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; - -import java.util.List; -import java.util.LinkedList; - -public class UnitTestMessageLogger implements RawMessageLogger -{ - List _log; - - public UnitTestMessageLogger() - { - _log = new LinkedList(); - } - - - public void rawMessage(String message) - { - _log.add(message); - } - - public void rawMessage(String message, Throwable throwable) - { - _log.add(message); - _log.add(throwable); - } - - - public List getLogMessages() - { - return _log; - } - - public void clearLogMessages() - { - _log.clear(); - } - -} diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLoggerTest.java b/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLoggerTest.java deleted file mode 100644 index e10de48432..0000000000 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/rawloggers/UnitTestMessageLoggerTest.java +++ /dev/null @@ -1,102 +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 junit.framework.TestCase; - -import java.util.List; - -/** - * Test: UnitTestMessageLoggerTest - * - * This test verifies that UnitTestMessageLogger adhears to its interface. - * - * Messages are logged, and Throwables recorded in an array that can be - * retreived and cleared. - * - */ -public class UnitTestMessageLoggerTest extends TestCase -{ - private static final String TEST_MESSAGE = "Test"; - private static final String TEST_THROWABLE = "Test Throwable"; - - public void testRawMessage() - { - UnitTestMessageLogger logger = new UnitTestMessageLogger(); - - assertEquals("Messages logged before test start", 0, - logger.getLogMessages().size()); - - // Log a message - logger.rawMessage(TEST_MESSAGE); - - List messages = logger.getLogMessages(); - - assertEquals("Expected to have 1 messages logged", 1, messages.size()); - - assertEquals("First message not what was logged", - TEST_MESSAGE, messages.get(0)); - } - - public void testRawMessageWithThrowable() - { - UnitTestMessageLogger logger = new UnitTestMessageLogger(); - - assertEquals("Messages logged before test start", 0, - logger.getLogMessages().size()); - - // Log a message - Throwable throwable = new Throwable(TEST_THROWABLE); - - logger.rawMessage(TEST_MESSAGE, throwable); - - List messages = logger.getLogMessages(); - - assertEquals("Expected to have 2 entries", 2, messages.size()); - - assertEquals("Message text not what was logged", - TEST_MESSAGE, messages.get(0)); - - assertEquals("Message throwable not what was logged", - TEST_THROWABLE, ((Throwable) messages.get(1)).getMessage()); - - } - - public void testClear() - { - UnitTestMessageLogger logger = new UnitTestMessageLogger(); - - assertEquals("Messages logged before test start", 0, - logger.getLogMessages().size()); - - // Log a message - logger.rawMessage(TEST_MESSAGE); - - assertEquals("Expected to have 1 messages logged", - 1, logger.getLogMessages().size()); - - logger.clearLogMessages(); - - assertEquals("Expected to have no messagse after a clear", - 0, logger.getLogMessages().size()); - - } -} diff --git a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java index 41fe81a717..025f899a6c 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java +++ b/java/broker/src/test/java/org/apache/qpid/server/logging/subjects/AbstractTestLogSubject.java @@ -31,9 +31,9 @@ import org.apache.qpid.server.logging.LogActor; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.logging.LogSubject; 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.UnitTestMessageLogger; import org.apache.qpid.server.logging.actors.TestLogActor; -import org.apache.qpid.server.logging.rawloggers.UnitTestMessageLogger; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.util.InternalBrokerBaseCase; import org.apache.qpid.server.virtualhost.VirtualHost; @@ -84,12 +84,9 @@ public abstract class AbstractTestLogSubject extends InternalBrokerBaseCase } ServerConfiguration serverConfig = new ServerConfiguration(_config); + UnitTestMessageLogger logger = new UnitTestMessageLogger(serverConfig); - UnitTestMessageLogger logger = new UnitTestMessageLogger(); - RootMessageLogger rootLogger = - new RootMessageLoggerImpl(serverConfig, logger); - - LogActor actor = new TestLogActor(rootLogger); + LogActor actor = new TestLogActor(logger); actor.message(_subject, new LogMessage() { @@ -97,6 +94,11 @@ public abstract class AbstractTestLogSubject extends InternalBrokerBaseCase { return ""; } + + public String getLogHierarchy() + { + return "test.hierarchy"; + } }); return logger.getLogMessages(); diff --git a/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java b/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java index 99053ca45a..47b5b1c1c2 100644 --- a/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java +++ b/java/broker/src/test/java/org/apache/qpid/server/util/InternalBrokerBaseCase.java @@ -30,7 +30,7 @@ import org.apache.qpid.framing.ContentHeaderBody; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.framing.abstraction.MessagePublishInfo; import org.apache.qpid.server.AMQChannel; -import org.apache.qpid.server.logging.StartupRootMessageLogger; +import org.apache.qpid.server.logging.SystemOutMessageLogger; import org.apache.qpid.server.logging.actors.CurrentActor; import org.apache.qpid.server.configuration.ServerConfiguration; import org.apache.qpid.server.exchange.Exchange; @@ -76,7 +76,7 @@ public class InternalBrokerBaseCase extends QpidTestCase protected void createBroker() throws Exception { _started = true; - CurrentActor.set(new TestLogActor(new StartupRootMessageLogger())); + CurrentActor.set(new TestLogActor(new SystemOutMessageLogger())); _configuration = new ServerConfiguration(_configXml); diff --git a/java/broker/src/velocity/templates/org/apache/qpid/server/logging/messages/LogMessages.vm b/java/broker/src/velocity/templates/org/apache/qpid/server/logging/messages/LogMessages.vm index f0cbaf53a1..fd847fd513 100644 --- a/java/broker/src/velocity/templates/org/apache/qpid/server/logging/messages/LogMessages.vm +++ b/java/broker/src/velocity/templates/org/apache/qpid/server/logging/messages/LogMessages.vm @@ -20,6 +20,9 @@ */ package ${package}; +import static org.apache.qpid.server.logging.AbstractRootMessageLogger.DEFAULT_LOG_HIERARCHY_PREFIX; + +import org.apache.log4j.Logger; import org.apache.qpid.server.logging.LogMessage; import org.apache.qpid.server.registry.ApplicationRegistry; @@ -42,9 +45,19 @@ public class ${type.name}Messages { static ResourceBundle _messages; static Locale _currentLocale; + + public static final String ${type.name.toUpperCase()}_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "${type.name.toLowerCase()}"; +#foreach( $message in ${type.list} ) + public static final String ${message.methodName.toUpperCase()}_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "${type.name.toLowerCase()}.${message.methodName.toLowerCase()}"; +#end static { + Logger.getLogger(${type.name.toUpperCase()}_LOG_HIERARCHY); +#foreach( $message in ${type.list} ) + Logger.getLogger(${message.methodName.toUpperCase()}_LOG_HIERARCHY); +#end + reload(); } @@ -174,6 +187,11 @@ public class ${type.name}Messages { return message; } + + public String getLogHierarchy() + { + return ${message.methodName.toUpperCase()}_LOG_HIERARCHY; + } }; } diff --git a/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java b/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java index 816720e581..0a0186e865 100644 --- a/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java +++ b/java/systests/src/main/java/org/apache/qpid/server/logging/AbstractTestLogging.java @@ -63,7 +63,7 @@ public class AbstractTestLogging extends QpidBrokerTestCase protected void createBroker() throws Exception { _started = true; - CurrentActor.set(new TestLogActor(new StartupRootMessageLogger())); + CurrentActor.set(new TestLogActor(new SystemOutMessageLogger())); // Prevent the InVM broker from logging and spoiling tests. _serverConfiguration.getConfig().setProperty(ServerConfiguration.STATUS_UPDATES, "off"); diff --git a/java/test-profiles/log4j-test.xml b/java/test-profiles/log4j-test.xml index 5ad277ea74..9adfd68202 100644 --- a/java/test-profiles/log4j-test.xml +++ b/java/test-profiles/log4j-test.xml @@ -39,6 +39,10 @@ + + + + -- cgit v1.2.1