You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2009/04/13 15:21:24 UTC
svn commit: r764443 - in /qpid/branches/0.5-fix/qpid: ./ java/broker/etc/
java/broker/src/main/java/org/apache/qpid/server/
java/broker/src/main/java/org/apache/qpid/server/logging/
java/broker/src/main/java/org/apache/qpid/server/logging/management/ j...
Author: ritchiem
Date: Mon Apr 13 13:21:24 2009
New Revision: 764443
URL: http://svn.apache.org/viewvc?rev=764443&view=rev
Log:
QPID-1648: Add LoggingManagement and associated MBean to enable dynamic reloading of log4j file. Update sample log4js so that they aren't arbitrarily rewritten.
Patch from Robbie Gemmell <ge...@dcs.gla.ac.uk>
merged from trunk r747870
Added:
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/
- copied from r747870, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/
- copied from r747870, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagement.java
- copied unchanged from r747870, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagement.java
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagementMBean.java
- copied unchanged from r747870, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagementMBean.java
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/
- copied from r747870, qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/management/
- copied from r747870, qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/management/
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/management/LoggingManagementMBeanTest.java
- copied unchanged from r747870, qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/logging/management/LoggingManagementMBeanTest.java
Modified:
qpid/branches/0.5-fix/qpid/ (props changed)
qpid/branches/0.5-fix/qpid/java/broker/etc/debug.log4j.xml
qpid/branches/0.5-fix/qpid/java/broker/etc/log4j.xml
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
Propchange: qpid/branches/0.5-fix/qpid/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 13:21:24 2009
@@ -1 +1 @@
-/qpid/trunk/qpid:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747869
+/qpid/trunk/qpid:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870
Modified: qpid/branches/0.5-fix/qpid/java/broker/etc/debug.log4j.xml
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/etc/debug.log4j.xml?rev=764443&r1=764442&r2=764443&view=diff
==============================================================================
--- qpid/branches/0.5-fix/qpid/java/broker/etc/debug.log4j.xml (original)
+++ qpid/branches/0.5-fix/qpid/java/broker/etc/debug.log4j.xml Mon Apr 13 13:21:24 2009
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
@@ -18,10 +18,10 @@
- specific language governing permissions and limitations
- under the License.
-
- -->
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
- <appender name="ArchivingFileAppender" class="org.apache.log4j.QpidCompositeRollingAppender">
+ --><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="null" threshold="null">
+ <appender class="org.apache.log4j.QpidCompositeRollingAppender" name="ArchivingFileAppender">
<!-- Ensure that logs allways have the dateFormat set-->
<param name="StaticLogFileName" value="false"/>
<param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
@@ -48,7 +48,7 @@
</layout>
</appender>
- <appender name="FileAppender" class="org.apache.log4j.FileAppender">
+ <appender class="org.apache.log4j.FileAppender" name="FileAppender">
<param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
<param name="Append" value="false"/>
@@ -57,7 +57,7 @@
</layout>
</appender>
- <appender name="AlertFile" class="org.apache.log4j.FileAppender">
+ <appender class="org.apache.log4j.FileAppender" name="AlertFile">
<param name="File" value="${QPID_WORK}/log/alert.log"/>
<param name="Append" value="false"/>
@@ -66,28 +66,28 @@
</layout>
</appender>
- <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+ <appender class="org.apache.log4j.ConsoleAppender" name="STDOUT">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
- <category name="Qpid.Broker">
+ <category additivity="true" name="Qpid.Broker">
<priority value="debug"/>
<appender-ref ref="AlertFile"/>
<!--appender-ref ref="STDOUT"/-->
</category>
- <category name="org.apache.qpid.server.queue.AMQQueueMBean">
+ <category additivity="true" name="org.apache.qpid.server.queue.AMQQueueMBean">
<priority value="info"/>
<appender-ref ref="AlertFile"/>
</category>
<!-- Provide warnings to standard output -->
- <!--category name="org.apache.qpid">
+ <!--category additivity="true" name="org.apache.qpid">
<priority value="warn"/>
<appender-ref ref="STDOUT"/>
</category-->
@@ -96,11 +96,11 @@
<!-- Additional level settings for debugging -->
<!-- Each class in the Broker is a category that can have its logging level adjusted. -->
<!-- This will provide more details if available about that classes processing. -->
- <!--category name="org.apache.qpid.server.txn">
+ <!--category additivity="true" name="org.apache.qpid.server.txn">
<priority value="debug"/>
</category>-->
- <!--<category name="org.apache.qpid.server.store">
+ <!--<category additivity="true" name="org.apache.qpid.server.store">
<priority value="debug"/>
</category-->
Modified: qpid/branches/0.5-fix/qpid/java/broker/etc/log4j.xml
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/etc/log4j.xml?rev=764443&r1=764442&r2=764443&view=diff
==============================================================================
--- qpid/branches/0.5-fix/qpid/java/broker/etc/log4j.xml (original)
+++ qpid/branches/0.5-fix/qpid/java/broker/etc/log4j.xml Mon Apr 13 13:21:24 2009
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!--
-
- Licensed to the Apache Software Foundation (ASF) under one
@@ -18,10 +18,10 @@
- specific language governing permissions and limitations
- under the License.
-
- -->
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
- <appender name="ArchivingFileAppender" class="org.apache.log4j.QpidCompositeRollingAppender">
+ --><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="null" threshold="null">
+ <appender class="org.apache.log4j.QpidCompositeRollingAppender" name="ArchivingFileAppender">
<!-- Ensure that logs allways have the dateFormat set-->
<param name="StaticLogFileName" value="false"/>
<param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
@@ -48,7 +48,7 @@
</layout>
</appender>
- <appender name="FileAppender" class="org.apache.log4j.FileAppender">
+ <appender class="org.apache.log4j.FileAppender" name="FileAppender">
<param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
<param name="Append" value="false"/>
@@ -57,25 +57,25 @@
</layout>
</appender>
- <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+ <appender class="org.apache.log4j.ConsoleAppender" name="STDOUT">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</layout>
</appender>
- <!-- Qpid.Broker log is a special log category used to only useful broker startup details -->
- <category name="Qpid.Broker">
+ <!-- Qpid.Broker log is a special log category used to log only useful broker startup details -->
+ <category additivity="true" name="Qpid.Broker">
<priority value="debug"/>
<appender-ref ref="STDOUT"/>
</category>
- <category name="org.apache.qpid.server.queue.AMQQueueMBean">
+ <category additivity="true" name="org.apache.qpid.server.queue.AMQQueueMBean">
<priority value="info"/>
</category>
<!-- Provide warnings to standard output -->
- <category name="org.apache.qpid">
+ <category additivity="true" name="org.apache.qpid">
<priority value="warn"/>
</category>
@@ -83,7 +83,7 @@
<!-- Examples of additional logging settings -->
<!-- Used to generate extra debug. See debug.log4j.xml -->
- <!--<category name="org.apache.qpid.server.store">
+ <!--<category additivity="true" name="org.apache.qpid.server.store">
<priority value="debug"/>
</category-->
Modified: qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java?rev=764443&r1=764442&r2=764443&view=diff
==============================================================================
--- qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java (original)
+++ qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java Mon Apr 13 13:21:24 2009
@@ -42,10 +42,12 @@
import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
import org.apache.mina.transport.socket.nio.SocketSessionConfig;
import org.apache.mina.util.NewThreadExecutor;
+import org.apache.qpid.AMQException;
import org.apache.qpid.common.QpidProperties;
import org.apache.qpid.framing.ProtocolVersion;
import org.apache.qpid.pool.ReadWriteThreadModel;
import org.apache.qpid.server.configuration.ServerConfiguration;
+import org.apache.qpid.server.logging.management.LoggingManagementMBean;
import org.apache.qpid.server.protocol.AMQPFastProtocolHandler;
import org.apache.qpid.server.protocol.AMQPProtocolProvider;
import org.apache.qpid.server.registry.ApplicationRegistry;
@@ -232,16 +234,29 @@
String logConfig = commandLine.getOptionValue("l");
String logWatchConfig = commandLine.getOptionValue("w", "0");
+
+ int logWatchTime = 0;
+ try
+ {
+ logWatchTime = Integer.parseInt(logWatchConfig);
+ }
+ catch (NumberFormatException e)
+ {
+ System.err.println("Log watch configuration value of " + logWatchConfig + " is invalid. Must be "
+ + "a non-negative integer. Using default of zero (no watching configured");
+ }
+
+ File logConfigFile;
if (logConfig != null)
{
- File logConfigFile = new File(logConfig);
- configureLogging(logConfigFile, logWatchConfig);
+ logConfigFile = new File(logConfig);
+ configureLogging(logConfigFile, logWatchTime);
}
else
{
File configFileDirectory = configFile.getParentFile();
- File logConfigFile = new File(configFileDirectory, DEFAULT_LOG_CONFIG_FILENAME);
- configureLogging(logConfigFile, logWatchConfig);
+ logConfigFile = new File(configFileDirectory, DEFAULT_LOG_CONFIG_FILENAME);
+ configureLogging(logConfigFile, logWatchTime);
}
ConfigurationFileApplicationRegistry config = new ConfigurationFileApplicationRegistry(configFile);
@@ -249,6 +264,8 @@
updateManagementPort(serverConfig, commandLine.getOptionValue("m"));
ApplicationRegistry.initialise(config);
+
+ configureLoggingManagementMBean(logConfigFile, logWatchTime);
//fixme .. use QpidProperties.getVersionString when we have fixed the classpath issues
// that are causing the broker build to pick up the wrong properties file and hence say
@@ -445,19 +462,8 @@
return ip;
}
- private void configureLogging(File logConfigFile, String logWatchConfig)
+ private void configureLogging(File logConfigFile, int logWatchTime)
{
- int logWatchTime = 0;
- try
- {
- logWatchTime = Integer.parseInt(logWatchConfig);
- }
- catch (NumberFormatException e)
- {
- System.err.println("Log watch configuration value of " + logWatchConfig + " is invalid. Must be "
- + "a non-negative integer. Using default of zero (no watching configured");
- }
-
if (logConfigFile.exists() && logConfigFile.canRead())
{
System.out.println("Configuring logger using configuration file " + logConfigFile.getAbsolutePath());
@@ -481,4 +487,17 @@
}
}
+ private void configureLoggingManagementMBean(File logConfigFile, int logWatchTime) throws Exception
+ {
+ LoggingManagementMBean blm = new LoggingManagementMBean(logConfigFile.getPath(),logWatchTime);
+
+ try
+ {
+ blm.register();
+ }
+ catch (AMQException e)
+ {
+ throw new InitException("Unable to initialise the Logging Management MBean: ", e);
+ }
+ }
}
Modified: qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java?rev=764443&r1=764442&r2=764443&view=diff
==============================================================================
--- qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java (original)
+++ qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java Mon Apr 13 13:21:24 2009
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.server.management;
+import org.apache.qpid.server.logging.management.LoggingManagement;
import org.apache.qpid.server.security.access.management.UserManagement;
import org.apache.log4j.Logger;
@@ -153,7 +154,12 @@
if (args[0] instanceof ObjectName)
{
ObjectName object = (ObjectName) args[0];
- return UserManagement.TYPE.equals(object.getKeyProperty("type"));
+
+ if (UserManagement.TYPE.equals(object.getKeyProperty("type"))
+ || LoggingManagement.TYPE.equals(object.getKeyProperty("type")))
+ {
+ return true;
+ }
}
return false;
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org