From b17aefbcf56b60d1994b90fe7fba45c79ce2732e Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Wed, 22 Dec 2010 23:53:40 +0000 Subject: [PATCH] check log4j configuration for changes every 10s patch by tjake; reviewed by jbellis for CASSANDRA-1525 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.7@1052104 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 1 + bin/cassandra | 2 +- bin/cassandra.bat | 3 ++- conf/log4j-server.properties | 7 ++++--- .../cassandra/service/AbstractCassandraDaemon.java | 13 +++++++++++-- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 4d812f56da..e79bebf8e2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -2,6 +2,7 @@ dev * fix cli crash after backgrounding (CASSANDRA-1875) * count timeouts in storageproxy latencies, and include latency histograms in StorageProxyMBean (CASSANDRA-1893) + * check log4j configuration for changes every 10s (CASSANDRA-1525) 0.7.0-rc3 diff --git a/bin/cassandra b/bin/cassandra index 85fe9540ff..1563cf532f 100755 --- a/bin/cassandra +++ b/bin/cassandra @@ -108,7 +108,7 @@ launch_service() foreground=$2 props=$3 class=$4 - cassandra_parms="-Dlog4j.configuration=log4j-server.properties" + cassandra_parms="-Dlog4j.configuration=log4j-server.properties -Dlog4j.defaultInitOverride=true" if [ "x$pidpath" != "x" ]; then cassandra_parms="$cassandra_parms -Dcassandra-pidfile=$pidpath" diff --git a/bin/cassandra.bat b/bin/cassandra.bat index 985781750d..d016460a8e 100644 --- a/bin/cassandra.bat +++ b/bin/cassandra.bat @@ -37,7 +37,8 @@ set JAVA_OPTS=^ -Dcom.sun.management.jmxremote.port=8080^ -Dcom.sun.management.jmxremote.ssl=false^ -Dcom.sun.management.jmxremote.authenticate=false^ - -Dlog4j.configuration=log4j-server.properties + -Dlog4j.configuration=log4j-server.properties^ + -Dlog4j.defaultInitOverride=true REM ***** CLASSPATH library setting ***** diff --git a/conf/log4j-server.properties b/conf/log4j-server.properties index 5499c3e6dd..cde670729f 100644 --- a/conf/log4j-server.properties +++ b/conf/log4j-server.properties @@ -35,6 +35,7 @@ log4j.appender.R.layout.ConversionPattern=%5p [%t] %d{ISO8601} %F (line %L) %m%n log4j.appender.R.File=/var/log/cassandra/system.log # Application logging options -#log4j.logger.com.facebook=DEBUG -#log4j.logger.com.facebook.infrastructure.gms=DEBUG -#log4j.logger.com.facebook.infrastructure.db=DEBUG +#log4j.logger.org.apache.cassandra=DEBUG +#log4j.logger.org.apache.cassandra.db=DEBUG +#log4j.logger.org.apache.cassandra.service.StorageProxy=DEBUG + diff --git a/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java b/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java index 62f20202ff..5b76e98b9d 100644 --- a/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java @@ -42,6 +42,7 @@ import org.apache.cassandra.db.migration.Migration; import org.apache.cassandra.utils.CLibrary; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.Mx4jTool; +import org.apache.log4j.PropertyConfigurator; import org.mortbay.thread.ThreadPool; /** @@ -53,8 +54,16 @@ import org.mortbay.thread.ThreadPool; */ public abstract class AbstractCassandraDaemon implements CassandraDaemon { - private static Logger logger = LoggerFactory - .getLogger(AbstractCassandraDaemon.class); + + //Initialize logging in such a way that it checks for config changes every 10 seconds. + static + { + String config = System.getProperty("log4j.configuration", "log4j-server.properties"); + PropertyConfigurator.configureAndWatch(ClassLoader.getSystemResource(config).getFile(), 10000); + org.apache.log4j.Logger.getLogger(AbstractCassandraDaemon.class).info("Logging initialized"); + } + + private static Logger logger = LoggerFactory.getLogger(AbstractCassandraDaemon.class); protected InetAddress listenAddr; protected int listenPort;