Author: rgodfrey
Date: Wed Apr 29 17:10:35 2015
New Revision: 1676797
URL: http://svn.apache.org/r1676797
Log:
QPID-6516: [Java Broker] Tactically switch Broker from Log4j to LogBack
(applied patch by Lorenz Quack)
Added:
qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml (with
props)
qpid/java/trunk/broker/etc/logback.xml (with props)
qpid/java/trunk/etc/logback.xml (with props)
qpid/java/trunk/perftests/example/brokerconfig/logback.xml (with props)
qpid/java/trunk/qpid-test-utils/src/main/resources/logback-test.xml (with
props)
qpid/java/trunk/systests/src/test/resources/systests.logback.xml (with
props)
qpid/java/trunk/test-profiles/test_resources/logback.xml (with props)
qpid/java/trunk/test-profiles/test_resources/logback2.xml (with props)
qpid/java/trunk/test-profiles/test_resources/spawned-broker-logback.xml
(with props)
Removed:
qpid/java/trunk/broker-core/src/main/java/fallback-log4j.properties
qpid/java/trunk/broker-core/src/main/java/org/apache/log4j/
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/Log4jMessageLoggerTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/LogMessageTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacadeTest.java
qpid/java/trunk/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/log/
qpid/java/trunk/broker/etc/log4j.xml
qpid/java/trunk/etc/log4j.xml
qpid/java/trunk/perftests/example/brokerconfig/log4j.xml
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/rest/LogViewerTest.java
qpid/java/trunk/systests/src/test/resources/systests.log4j
qpid/java/trunk/test-profiles/test_resources/log4j.xml
qpid/java/trunk/test-profiles/test_resources/spawned-broker-log4j.xml
Modified:
qpid/java/trunk/bdbstore/jmx/pom.xml
qpid/java/trunk/bdbstore/pom.xml
qpid/java/trunk/bdbstore/systests/pom.xml
qpid/java/trunk/broker-core/pom.xml
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
qpid/java/trunk/broker-plugins/access-control/pom.xml
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml
qpid/java/trunk/broker-plugins/derby-store/pom.xml
qpid/java/trunk/broker-plugins/jdbc-store/pom.xml
qpid/java/trunk/broker-plugins/management-http/pom.xml
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
qpid/java/trunk/broker-plugins/management-jmx/pom.xml
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
qpid/java/trunk/broker/pom.xml
qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java
qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java
qpid/java/trunk/perftests/pom.xml
qpid/java/trunk/pom.xml
qpid/java/trunk/qpid-systests-parent/pom.xml
qpid/java/trunk/qpid-test-utils/pom.xml
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
qpid/java/trunk/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/BrokerStartupTest.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/BrokerLoggingTest.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/logging/ConsumerLoggingTest.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/jmx/LoggingManagementTest.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/util/LogMonitor.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/util/LogMonitorTest.java
qpid/java/trunk/test-profiles/JavaExcludes
Modified: qpid/java/trunk/bdbstore/jmx/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/jmx/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/jmx/pom.xml (original)
+++ qpid/java/trunk/bdbstore/jmx/pom.xml Wed Apr 29 17:10:35 2015
@@ -50,9 +50,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
Modified: qpid/java/trunk/bdbstore/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/pom.xml (original)
+++ qpid/java/trunk/bdbstore/pom.xml Wed Apr 29 17:10:35 2015
@@ -50,9 +50,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
Modified: qpid/java/trunk/bdbstore/systests/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/systests/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/systests/pom.xml (original)
+++ qpid/java/trunk/bdbstore/systests/pom.xml Wed Apr 29 17:10:35 2015
@@ -30,7 +30,7 @@
<description>BDB message store system tests</description>
<properties>
-
<test.log4j.configuration.file>${project.basedir}${file.separator}..${file.separator}..${file.separator}test-profiles${file.separator}log4j-test.xml</test.log4j.configuration.file>
+
<test.log4j.configuration.file>${project.basedir}${file.separator}..${file.separator}..${file.separator}test-profiles${file.separator}logback-test.xml</test.log4j.configuration.file>
<test.working.directory>${basedir}/../..</test.working.directory>
<test.resource.directory>${basedir}/../..</test.resource.directory>
<test.systest.resource.directory>${basedir}/../../systests</test.systest.resource.directory>
Modified: qpid/java/trunk/broker-core/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/pom.xml (original)
+++ qpid/java/trunk/broker-core/pom.xml Wed Apr 29 17:10:35 2015
@@ -53,9 +53,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
@@ -64,12 +64,6 @@
<version>${slf4j-version}</version>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j-version}</version>
- </dependency>
-
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
Added: qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml (added)
+++ qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml Wed Apr 29
17:10:35 2015
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+<configuration>
+ <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%t %d %p [%c{4}] %m%n</pattern>
+ </encoder>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>all</level>
+ </filter>
+ </appender>
+ <root level="${amqj.logging.level}">
+ <appender-ref ref="console"/>
+ </root>
+</configuration>
\ No newline at end of file
Propchange: qpid/java/trunk/broker-core/src/main/java/fallback-logback.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/Broker.java
Wed Apr 29 17:10:35 2015
@@ -32,13 +32,15 @@ import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+import java.util.logging.LogManager;
import javax.security.auth.Subject;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
+import ch.qos.logback.core.util.StatusPrinter;
import com.google.common.util.concurrent.ListenableFuture;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
import org.apache.qpid.common.QpidProperties;
import org.apache.qpid.server.configuration.BrokerProperties;
@@ -57,10 +59,12 @@ import org.apache.qpid.server.plugin.Plu
import org.apache.qpid.server.plugin.SystemConfigFactory;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.util.Action;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class Broker
{
- private static final Logger LOGGER = Logger.getLogger(Broker.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(Broker.class);
private volatile Thread _shutdownHookThread;
private EventLogger _eventLogger;
@@ -131,7 +135,8 @@ public class Broker
if (_configuringOwnLogging)
{
- LogManager.shutdown();
+ LoggerContext loggerContext = (LoggerContext)
LoggerFactory.getILoggerFactory();
+ loggerContext.stop();
}
if (_shutdownAction != null)
@@ -179,7 +184,7 @@ public class Broker
//embedding the broker and want to configure it themselves.
if(!options.isSkipLoggingConfiguration())
{
- configureLogging(new File(options.getLogConfigFileLocation()),
options.getLogWatchFrequency(), options.isStartupLoggedToSystemOut());
+ configureLogging(new File(options.getLogConfigFileLocation()),
options.isStartupLoggedToSystemOut());
}
// Create the RootLogger to be used during broker operation
boolean statusUpdatesEnabled =
Boolean.parseBoolean(System.getProperty(BrokerProperties.PROPERTY_STATUS_UPDATES,
"true"));
@@ -198,7 +203,7 @@ public class Broker
SystemConfigFactory configFactory = configFactoryLoader.get(storeType);
if(configFactory == null)
{
- LOGGER.fatal("Unknown config store type '"+storeType+"', only the
following types are supported: " + configFactoryLoader.getSupportedTypes());
+ LOGGER.error("Unknown config store type '" + storeType + "', only
the following types are supported: " + configFactoryLoader.getSupportedTypes());
throw new IllegalArgumentException("Unknown config store type
'"+storeType+"', only the following types are supported: " +
configFactoryLoader.getSupportedTypes());
}
@@ -223,7 +228,7 @@ public class Broker
}
catch(RuntimeException e)
{
- LOGGER.fatal("Exception during startup", e);
+ LOGGER.error("Exception during startup", e);
closeSystemConfig();
throw e;
}
@@ -246,7 +251,7 @@ public class Broker
}
}
- private void configureLogging(File logConfigFile, int logWatchTime,
boolean startupLoggedToSystemOutput) throws InitException, IOException
+ private void configureLogging(File logConfigFile, boolean
startupLoggedToSystemOutput) throws InitException, IOException
{
_configuringOwnLogging = true;
if (logConfigFile.exists() && logConfigFile.canRead())
@@ -256,52 +261,42 @@ public class Broker
_eventLogger.message(BrokerMessages.LOG_CONFIG(logConfigFile.getAbsolutePath()));
}
- if (logWatchTime > 0)
+ try
{
- System.out.println("log file " +
logConfigFile.getAbsolutePath() + " will be checked for changes every "
- + logWatchTime + " seconds");
- // log4j expects the watch interval in milliseconds
- try
- {
-
LoggingManagementFacade.configureAndWatch(logConfigFile.getPath(), logWatchTime
* 1000);
- }
- catch (Exception e)
- {
- throw new InitException(e.getMessage(),e);
- }
+ LoggingManagementFacade.configure(logConfigFile.getPath());
}
- else
+ catch (Exception e)
{
- try
- {
- LoggingManagementFacade.configure(logConfigFile.getPath());
- }
- catch (Exception e)
- {
- throw new InitException(e.getMessage(),e);
- }
+ throw new InitException(e.getMessage(),e);
}
}
else
{
System.err.println("Logging configuration error: unable to read
file " + logConfigFile.getAbsolutePath());
- System.err.println("Using the fallback internal
fallback-log4j.properties configuration");
+ System.err.println("Using the fallback internal
fallback-logback.xml configuration");
- InputStream propsFile =
this.getClass().getResourceAsStream("/fallback-log4j.properties");
+ InputStream propsFile =
this.getClass().getResourceAsStream("/fallback-logback.xml");
if(propsFile == null)
{
- throw new IOException("Unable to load the fallback internal
fallback-log4j.properties configuration file");
+ throw new IOException("Unable to load the fallback internal
fallback-logback.xml configuration file");
}
else
{
+ LoggerContext context = (LoggerContext)
LoggerFactory.getILoggerFactory();
try
{
- Properties fallbackProps = new Properties();
- fallbackProps.load(propsFile);
- PropertyConfigurator.configure(fallbackProps);
+ JoranConfigurator configurator = new JoranConfigurator();
+ configurator.setContext(context);
+ context.reset();
+ configurator.doConfigure(propsFile);
+ }
+ catch (JoranException e)
+ {
+ // StatusPrinter will handle this
}
finally
{
+ StatusPrinter.printInCaseOfErrorsOrWarnings(context);
propsFile.close();
}
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
Wed Apr 29 17:10:35 2015
@@ -52,7 +52,7 @@ public class BrokerOptions
public static final String DEFAULT_INITIAL_CONFIG_NAME =
"initial-config.json";
public static final String DEFAULT_STORE_TYPE = "JSON";
public static final String DEFAULT_CONFIG_NAME_PREFIX = "config";
- public static final String DEFAULT_LOG_CONFIG_FILE = "etc/log4j.xml";
+ public static final String DEFAULT_LOG_CONFIG_FILE = "etc/logback.xml";
public static final String DEFAULT_INITIAL_CONFIG_LOCATION =
BrokerOptions.class.getClassLoader().getResource(DEFAULT_INITIAL_CONFIG_NAME).toExternalForm();
@@ -61,7 +61,6 @@ public class BrokerOptions
private static final File FALLBACK_WORK_DIR = new
File(System.getProperty("user.dir"), "work");
private String _logConfigFile;
- private Integer _logWatchFrequency = 0;
private String _configurationStoreLocation;
private String _configurationStoreType;
@@ -108,20 +107,6 @@ public class BrokerOptions
_managementModePassword = managementModePassword;
}
- public int getLogWatchFrequency()
- {
- return _logWatchFrequency;
- }
-
- /**
- * Set the frequency with which the log config file will be checked for
updates.
- * @param logWatchFrequency frequency in seconds
- */
- public void setLogWatchFrequency(final int logWatchFrequency)
- {
- _logWatchFrequency = logWatchFrequency;
- }
-
public boolean isManagementMode()
{
return _managementMode;
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/LogRecorder.java
Wed Apr 29 17:10:35 2015
@@ -18,20 +18,11 @@
package org.apache.qpid.server.logging;
import java.util.Iterator;
-import org.apache.log4j.Appender;
-import org.apache.log4j.Layout;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.ErrorHandler;
-import org.apache.log4j.spi.Filter;
-import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.spi.ThrowableInformation;
import org.apache.qpid.server.configuration.BrokerProperties;
-public class LogRecorder implements Appender, Iterable<LogRecorder.Record>
+public class LogRecorder implements Iterable<LogRecorder.Record>
{
private static final int DEFAULT_BUFFER_SIZE = 4096;
- private ErrorHandler _errorHandler;
- private Filter _filter;
private String _name;
private long _recordId;
@@ -42,49 +33,16 @@ public class LogRecorder implements Appe
public static class Record
{
- private final long _id;
- private final String _logger;
- private final long _timestamp;
- private final String _threadName;
- private final String _level;
- private final String _message;
-
-
- public Record(long id, LoggingEvent event)
- {
- _id = id;
- _logger = event.getLoggerName();
- _timestamp = event.timeStamp;
- _threadName = event.getThreadName();
- _level = event.getLevel().toString();
- StringBuilder message = new StringBuilder();
- String renderedMessage = event.getRenderedMessage();
- if (renderedMessage != null)
- {
- message.append(renderedMessage);
- }
- ThrowableInformation ti = event.getThrowableInformation();
- if (ti != null)
- {
- Throwable t = ti.getThrowable();
- if (t != null)
- {
- if (message.length() > 0)
- {
- message.append(":");
- }
- String exceptionMessage = t.getMessage();
- if (exceptionMessage != null &&
!"".equals(exceptionMessage))
- {
- message.append(t.getMessage());
- }
- else
- {
- message.append(t.getClass().getName());
- }
- }
- }
- _message = message.toString();
+ private long _id;
+ private String _logger;
+ private long _timestamp;
+ private String _threadName;
+ private String _level;
+ private String _message;
+
+
+ public Record(long id)
+ {
}
public long getId()
@@ -118,86 +76,8 @@ public class LogRecorder implements Appe
}
}
- public LogRecorder()
- {
- Logger.getRootLogger().addAppender(this);
- }
-
- @Override
- public void addFilter(Filter filter)
- {
- _filter = filter;
- }
-
- @Override
- public void clearFilters()
- {
- _filter = null;
- }
-
- @Override
- public void close()
- {
- }
-
public void closeLogRecorder()
{
- Logger.getRootLogger().removeAppender(this);
- }
-
- @Override
- public synchronized void doAppend(LoggingEvent loggingEvent)
- {
- _records[((int) (_recordId & _mask))] = new Record(_recordId,
loggingEvent);
- _recordId++;
- }
-
- @Override
- public ErrorHandler getErrorHandler()
- {
- return _errorHandler;
- }
-
- @Override
- public Filter getFilter()
- {
- return _filter;
- }
-
- @Override
- public Layout getLayout()
- {
- return null;
- }
-
- @Override
- public String getName()
- {
- return _name;
- }
-
- @Override
- public boolean requiresLayout()
- {
- return false;
- }
-
- @Override
- public void setErrorHandler(ErrorHandler errorHandler)
- {
- _errorHandler = errorHandler;
- }
-
- @Override
- public void setLayout(Layout layout)
- {
-
- }
-
- @Override
- public void setName(String name)
- {
- _name = name;
}
@Override
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/log4j/LoggingManagementFacade.java
Wed Apr 29 17:10:35 2015
@@ -20,52 +20,16 @@
*/
package org.apache.qpid.server.logging.log4j;
-import org.apache.log4j.Level;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.log4j.xml.DOMConfigurator;
-import org.apache.log4j.xml.Log4jEntityResolver;
-import org.apache.qpid.util.FileUtils;
-import org.apache.qpid.util.SystemUtils;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
+
+import org.slf4j.Logger;
+
import java.util.List;
import java.util.Map;
-import java.util.Random;
-/**
- * A facade over log4j that allows both the control of the runtime logging
behaviour (that is, the ability to
- * turn {@link Logger} on, off and control their {@link Level}, and the
manipulation and reload
- * of the log4j configuration file.
- */
+
public class LoggingManagementFacade
{
- private static Logger LOGGER;
private static transient LoggingManagementFacade _instance;
- private final String _filename;
- private final int _delay;
public static LoggingManagementFacade configure(String filename) throws
LoggingFacadeException
{
@@ -86,37 +50,22 @@ public class LoggingManagementFacade
private LoggingManagementFacade(String filename)
{
- DOMConfigurator.configure(filename);
- if(LOGGER == null)
- {
- LOGGER = Logger.getLogger(LoggingManagementFacade.class);
- }
- _filename = filename;
- _delay = 0;
}
private LoggingManagementFacade(String filename, int delay)
{
- DOMConfigurator.configureAndWatch(filename, delay);
-
- if(LOGGER == null)
- {
- LOGGER = Logger.getLogger(LoggingManagementFacade.class);
- }
-
- _filename = filename;
- _delay = delay;
+ throw new UnsupportedOperationException();
}
public int getLog4jLogWatchInterval()
{
- return _delay;
+ throw new UnsupportedOperationException();
}
public synchronized void reload() throws LoggingFacadeException
{
- DOMConfigurator.configure(_filename);
+ throw new UnsupportedOperationException();
}
/** The log4j XML configuration file DTD defines three possible element
@@ -132,39 +81,7 @@ public class LoggingManagementFacade
*/
public synchronized Map<String,String> retrieveConfigFileLoggersLevels()
throws LoggingFacadeException
{
- try
- {
- Map<String,String> loggerLevelList = new HashMap<String,String>();
- LOGGER.info("Getting logger levels from log4j configuration file");
-
- Document doc = parseConfigFile(_filename);
- List<Element> categoryOrLoggerElements =
buildListOfCategoryOrLoggerElements(doc);
-
- for (Element categoryOrLogger : categoryOrLoggerElements)
- {
-
- Element priorityOrLevelElement;
- try
- {
- priorityOrLevelElement =
getPriorityOrLevelElement(categoryOrLogger);
- }
- catch (LoggingFacadeException lfe)
- {
- //there is no exiting priority or level to view, move onto
next category/logger
- continue;
- }
-
- String categoryName = categoryOrLogger.getAttribute("name");
- String priorityOrLevelValue =
priorityOrLevelElement.getAttribute("value");
- loggerLevelList.put(categoryName, priorityOrLevelValue);
- }
-
- return loggerLevelList;
- }
- catch (IOException e)
- {
- throw new LoggingFacadeException(e);
- }
+ throw new UnsupportedOperationException();
}
/**
@@ -180,424 +97,43 @@ public class LoggingManagementFacade
*/
public synchronized String retrieveConfigFileRootLoggerLevel() throws
LoggingFacadeException
{
- try
- {
- Document doc = parseConfigFile(_filename);
-
- //retrieve the optional 'root' element node
- NodeList rootElements = doc.getElementsByTagName("root");
-
- if (rootElements.getLength() == 0)
- {
- //there is no root logger definition
- return "N/A";
- }
-
- Element rootElement = (Element) rootElements.item(0);
- Element levelElement = getPriorityOrLevelElement(rootElement);
-
- if(levelElement != null)
- {
- return levelElement.getAttribute("value");
- }
- else
- {
- return "N/A";
- }
- }
- catch (IOException e)
- {
- throw new LoggingFacadeException(e);
- }
+ throw new UnsupportedOperationException();
}
public synchronized void setConfigFileLoggerLevel(String logger, String
level) throws LoggingFacadeException
{
- LOGGER.info("Setting level to " + level + " for logger '" + logger
- + "' in log4j xml configuration file: " + _filename);
-
- try
- {
- Document doc = parseConfigFile(_filename);
-
- List<Element> logElements =
buildListOfCategoryOrLoggerElements(doc);
-
- //try to locate the specified logger/category in the elements
retrieved
- Element logElement = null;
- for (Element e : logElements)
- {
- if (e.getAttribute("name").equals(logger))
- {
- logElement = e;
- break;
- }
- }
-
- if (logElement == null)
- {
- throw new LoggingFacadeException("Can't find logger " +
logger);
- }
-
- Element levelElement = getPriorityOrLevelElement(logElement);
-
- //update the element with the new level/priority
- levelElement.setAttribute("value", level);
-
- //output the new file
- writeUpdatedConfigFile(_filename, doc);
- }
- catch (IOException ioe)
- {
- throw new LoggingFacadeException(ioe);
- }
- catch (TransformerConfigurationException e)
- {
- throw new LoggingFacadeException(e);
- }
+ throw new UnsupportedOperationException();
}
public synchronized void setConfigFileRootLoggerLevel(String level) throws
LoggingFacadeException
{
- try
- {
- LOGGER.info("Setting level to " + level + " for the Root logger in
" +
- "log4j xml configuration file: " + _filename);
-
- Document doc = parseConfigFile(_filename);
-
- //retrieve the optional 'root' element node
- NodeList rootElements = doc.getElementsByTagName("root");
-
- if (rootElements.getLength() == 0)
- {
- throw new LoggingFacadeException("Configuration contains no
root element");
- }
-
- Element rootElement = (Element) rootElements.item(0);
- Element levelElement = getPriorityOrLevelElement(rootElement);
-
- //update the element with the new level/priority
- levelElement.setAttribute("value", level);
-
- //output the new file
- writeUpdatedConfigFile(_filename, doc);
- }
- catch (IOException e)
- {
- throw new LoggingFacadeException(e);
- }
- catch (TransformerConfigurationException e)
- {
- throw new LoggingFacadeException(e);
- }
+ throw new UnsupportedOperationException();
}
public List<String> getAvailableLoggerLevels()
{
- return new ArrayList<String>()
- {
- private static final long serialVersionUID = 599203507907836466L;
- {
- add(Level.ALL.toString());
- add(Level.TRACE.toString());
- add(Level.DEBUG.toString());
- add(Level.INFO.toString());
- add(Level.WARN.toString());
- add(Level.ERROR.toString());
- add(Level.FATAL.toString());
- add(Level.OFF.toString());
- }};
+ throw new UnsupportedOperationException();
}
public String retrieveRuntimeRootLoggerLevel()
{
- Logger rootLogger = Logger.getRootLogger();
- return rootLogger.getLevel().toString();
+ throw new UnsupportedOperationException();
}
public void setRuntimeRootLoggerLevel(String level)
{
- Level newLevel = Level.toLevel(level);
-
- LOGGER.info("Setting RootLogger level to " + level);
-
- Logger log = Logger.getRootLogger();
- log.setLevel(newLevel);
+ throw new UnsupportedOperationException();
}
public void setRuntimeLoggerLevel(String loggerName, String level) throws
LoggingFacadeException
{
- Level newLevel = level == null ? null : Level.toLevel(level);
-
- Logger targetLogger = findRuntimeLogger(loggerName);
-
- if(targetLogger == null)
- {
- throw new LoggingFacadeException("Can't find logger " +
loggerName);
- }
-
- LOGGER.info("Setting level to " + newLevel + " for logger '" +
targetLogger.getName() + "'");
-
- targetLogger.setLevel(newLevel);
+ throw new UnsupportedOperationException();
}
public Map<String,String> retrieveRuntimeLoggersLevels()
{
- LOGGER.info("Getting levels for currently active log4j loggers");
-
- Map<String, String> levels = new HashMap<String, String>();
- @SuppressWarnings("unchecked")
- Enumeration<Logger> loggers = LogManager.getCurrentLoggers();
-
- while (loggers.hasMoreElements())
- {
- Logger logger = loggers.nextElement();
- levels.put(logger.getName(),
logger.getEffectiveLevel().toString());
- }
-
- return levels;
- }
-
- private void writeUpdatedConfigFile(String log4jConfigFileName, Document
doc) throws IOException, TransformerConfigurationException
- {
- File log4jConfigFile = new File(log4jConfigFileName);
-
- if (!log4jConfigFile.canWrite())
- {
- LOGGER.warn("Specified log4j XML configuration file is not
writable: " + log4jConfigFile);
- throw new IOException("Specified log4j XML configuration file is
not writable");
- }
-
- // Swap temp file in to replace existing configuration file.
- File old = new File(log4jConfigFile.getAbsoluteFile() + ".old");
- if (old.exists())
- {
- old.delete();
- }
-
- if(!SystemUtils.isWindows())
- {
-
- File tmp;
- Random r = new Random();
-
- final String absolutePath = log4jConfigFile.getAbsolutePath();
- do
- {
- tmp = new File(absolutePath + r.nextInt() + ".tmp");
- }
- while(tmp.exists());
-
- tmp.deleteOnExit();
-
- writeConfigToFile(doc, new FileOutputStream(tmp));
-
- if(!log4jConfigFile.renameTo(old))
- {
- //unable to rename the existing file to the backup name
- LOGGER.error("Could not backup the existing log4j XML file");
- throw new IOException("Could not backup the existing log4j XML
file");
- }
-
- if(!tmp.renameTo(new File(absolutePath)))
- {
- //failed to rename the new file to the required filename
-
- if(!old.renameTo(log4jConfigFile))
- {
- //unable to return the backup to required filename
- LOGGER.error("Could not rename the new log4j configuration
file into place, and unable to restore original file");
- throw new IOException("Could not rename the new log4j
configuration file into place, and unable to restore original file");
- }
-
- LOGGER.error("Could not rename the new log4j configuration
file into place");
- throw new IOException("Could not rename the new log4j
configuration file into place");
- }
- }
- else
- {
- // In windows we can't do a safe rename current -> old, tmp ->
current as it will not allow
- // a new file with the same name as current to be created while it
is still open.
-
- // Instead we have to do an unsafe "copy current to old", "replace
current contents with tmp contents"
- FileUtils.copy(log4jConfigFile,old);
- writeConfigToFile(doc, new FileOutputStream(log4jConfigFile));
- }
- }
-
- private void writeConfigToFile(Document doc, FileOutputStream outputFile)
throws TransformerConfigurationException, IOException
- {
- Transformer transformer = null;
- transformer = TransformerFactory.newInstance().newTransformer();
-
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "log4j.dtd");
- DOMSource source = new DOMSource(doc);
-
-
- try
- {
- StreamResult result = new StreamResult(outputFile);
- transformer.transform(source, result);
- }
- catch (TransformerException e)
- {
- LOGGER.warn("Could not transform the XML into new file: ", e);
- throw new IOException("Could not transform the XML into new file:
", e);
- }
- }
-
- //method to parse the XML configuration file, validating it in the
process, and returning a DOM Document of the content.
- private static Document parseConfigFile(String fileName) throws IOException
- {
- //check file was specified, exists, and is readable
- if(fileName == null)
- {
- LOGGER.warn("Provided log4j XML configuration filename is null");
- throw new IOException("Provided log4j XML configuration filename
is null");
- }
-
- File configFile = new File(fileName);
-
- if (!configFile.exists())
- {
- LOGGER.warn("The log4j XML configuration file could not be found:
" + fileName);
- throw new IOException("The log4j XML configuration file could not
be found");
- }
- else if (!configFile.canRead())
- {
- LOGGER.warn("The log4j XML configuration file is not readable: " +
fileName);
- throw new IOException("The log4j XML configuration file is not
readable");
- }
-
- //parse it
- DocumentBuilderFactory docFactory =
DocumentBuilderFactory.newInstance();
- DocumentBuilder docBuilder;
- Document doc;
-
- ErrorHandler errHandler = new QpidLog4JSaxErrorHandler();
- try
- {
- docFactory.setValidating(true);
- docBuilder = docFactory.newDocumentBuilder();
- docBuilder.setErrorHandler(errHandler);
- docBuilder.setEntityResolver(new Log4jEntityResolver());
- doc = docBuilder.parse(fileName);
- }
- catch (ParserConfigurationException e)
- {
- LOGGER.warn("Unable to parse the log4j XML file due to possible
configuration error: ", e);
- throw new IOException("Unable to parse the log4j XML file due to
possible configuration error: ", e);
- }
- catch (SAXException e)
- {
- LOGGER.warn("The specified log4j XML file is invalid: ", e);
- throw new IOException("The specified log4j XML file is invalid: ",
e);
- }
- catch (IOException e)
- {
- LOGGER.warn("Unable to parse the specified log4j XML file", e);
- throw new IOException("Unable to parse the specified log4j XML
file: ", e);
- }
-
- return doc;
- }
-
- private Logger findRuntimeLogger(String loggerName)
- {
- Logger targetLogger = null;
- @SuppressWarnings("unchecked")
- Enumeration<Logger> loggers = LogManager.getCurrentLoggers();
- while(loggers.hasMoreElements())
- {
- targetLogger = loggers.nextElement();
- if (targetLogger.getName().equals(loggerName))
- {
- return targetLogger;
- }
- }
- return null;
- }
-
- private List<Element> buildListOfCategoryOrLoggerElements(Document doc)
- {
- //retrieve the 'category' and 'logger' element nodes
- NodeList categoryElements = doc.getElementsByTagName("category");
- NodeList loggerElements = doc.getElementsByTagName("logger");
-
- //collect them into a single elements list
- List<Element> logElements = new ArrayList<Element>();
-
- for (int i = 0; i < categoryElements.getLength(); i++)
- {
- logElements.add((Element) categoryElements.item(i));
- }
- for (int i = 0; i < loggerElements.getLength(); i++)
- {
- logElements.add((Element) loggerElements.item(i));
- }
- return logElements;
- }
-
- private Element getPriorityOrLevelElement(Element categoryOrLogger) throws
LoggingFacadeException
- {
- //retrieve the optional 'priority' or 'level' sub-element value.
- //It may not be the only child node, so request by tag name.
- NodeList priorityElements =
categoryOrLogger.getElementsByTagName("priority");
- NodeList levelElements =
categoryOrLogger.getElementsByTagName("level");
-
- Element levelElement = null;
- if (priorityElements.getLength() != 0)
- {
- levelElement = (Element) priorityElements.item(0);
- }
- else if (levelElements.getLength() != 0)
- {
- levelElement = (Element) levelElements.item(0);
- }
- else
- {
- throw new LoggingFacadeException("Configuration " +
categoryOrLogger.getNodeName()
- + " element contains neither priority nor level child");
- }
- return levelElement;
- }
-
- private static class QpidLog4JSaxErrorHandler implements ErrorHandler
- {
- public void error(SAXParseException e) throws SAXException
- {
- if(LOGGER != null)
- {
- LOGGER.warn(constructMessage("Error parsing XML file", e));
- }
- else
- {
- System.err.println(constructMessage("Error parsing XML file",
e));
- }
- }
-
- public void fatalError(SAXParseException e) throws SAXException
- {
- throw new SAXException(constructMessage("Fatal error parsing XML
file", e));
- }
-
- public void warning(SAXParseException e) throws SAXException
- {
- if(LOGGER != null)
- {
- LOGGER.warn(constructMessage("Warning parsing XML file", e));
- }
- else
- {
- System.err.println(constructMessage("Warning parsing XML
file", e));
- }
- }
-
- private static String constructMessage(final String msg, final
SAXParseException ex)
- {
- return msg + ": Line " + ex.getLineNumber()+" column "
+ex.getColumnNumber() + ": " + ex.getMessage();
- }
+ throw new UnsupportedOperationException();
}
+
}
Modified:
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
(original)
+++
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/BrokerOptionsTest.java
Wed Apr 29 17:10:35 2015
@@ -110,19 +110,6 @@ public class BrokerOptionsTest extends Q
assertEquals(testLogConfigFile, _options.getLogConfigFileLocation());
}
- public void testDefaultLogWatchFrequency()
- {
- assertEquals(0L, _options.getLogWatchFrequency());
- }
-
- public void testOverridenLogWatchFrequency()
- {
- final int myFreq = 10 * 1000;
-
- _options.setLogWatchFrequency(myFreq);
- assertEquals(myFreq, _options.getLogWatchFrequency());
- }
-
public void testDefaultInitialConfigurationLocation()
{
assertEquals(BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION,
_options.getInitialConfigurationLocation());
Modified: qpid/java/trunk/broker-plugins/access-control/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/access-control/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/access-control/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/access-control/pom.xml Wed Apr 29 17:10:35
2015
@@ -49,9 +49,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<!-- test dependencies -->
Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/pom.xml Wed Apr 29
17:10:35 2015
@@ -45,9 +45,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
Modified: qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-8-protocol/pom.xml Wed Apr 29
17:10:35 2015
@@ -49,9 +49,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<!-- test dependencies -->
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/pom.xml Wed Apr 29
17:10:35 2015
@@ -51,9 +51,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
</dependencies>
Modified: qpid/java/trunk/broker-plugins/derby-store/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/derby-store/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/derby-store/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/derby-store/pom.xml Wed Apr 29 17:10:35 2015
@@ -50,9 +50,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<!-- test dependencies -->
Modified: qpid/java/trunk/broker-plugins/jdbc-store/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/jdbc-store/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/jdbc-store/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/jdbc-store/pom.xml Wed Apr 29 17:10:35 2015
@@ -45,9 +45,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<!-- test dependencies -->
Modified: qpid/java/trunk/broker-plugins/management-http/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/management-http/pom.xml Wed Apr 29 17:10:35
2015
@@ -49,9 +49,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
Wed Apr 29 17:10:35 2015
@@ -361,8 +361,9 @@ public class HttpManagement extends Abst
root.addServlet(new ServletHolder(new FileServlet()), "*.txt");
root.addServlet(new ServletHolder(new FileServlet()), "*.xsl");
root.addServlet(new ServletHolder(new TimeZoneServlet()),
"/service/timezones");
- root.addServlet(new ServletHolder(new LogFileListingServlet()),
"/service/logfilenames");
- root.addServlet(new ServletHolder(new LogFileServlet()),
"/service/logfile");
+ // QPID-6516
+// root.addServlet(new ServletHolder(new LogFileListingServlet()),
"/service/logfilenames");
+// root.addServlet(new ServletHolder(new LogFileServlet()),
"/service/logfile");
final SessionManager sessionManager =
root.getSessionHandler().getSessionManager();
sessionManager.getSessionCookieConfig().setName(JSESSIONID_COOKIE_PREFIX +
lastPort);
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
Wed Apr 29 17:10:35 2015
@@ -30,9 +30,6 @@ import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
-import org.apache.log4j.Appender;
-import org.apache.log4j.FileAppender;
-import org.apache.log4j.QpidCompositeRollingAppender;
public class LogFileHelper
{
@@ -41,85 +38,20 @@ public class LogFileHelper
public static final String ZIP_MIME_TYPE = "application/zip";
public static final String GZIP_EXTENSION = ".gz";
private static final int BUFFER_LENGTH = 1024 * 4;
- private Collection<Appender> _appenders;
- public LogFileHelper(Collection<Appender> appenders)
+ public LogFileHelper()
{
- super();
- _appenders = appenders;
+ throw new UnsupportedOperationException();
}
public List<LogFileDetails> findLogFileDetails(String[] requestedFiles)
{
- List<LogFileDetails> logFiles = new ArrayList<LogFileDetails>();
- Map<String, List<LogFileDetails>> cache = new HashMap<String,
List<LogFileDetails>>();
- for (int i = 0; i < requestedFiles.length; i++)
- {
- String logFile = requestedFiles[i];
- if ("".equals(logFile))
- {
- throw new IllegalArgumentException("Log file parameter is
empty");
- }
- int pos = logFile.indexOf("/");
- if (pos == -1)
- {
- throw new IllegalArgumentException("Log file parameter '" +
logFile + "' does not include an appender name");
- }
- if (pos == logFile.length())
- {
- throw new IllegalArgumentException("Log file parameter '" +
logFile + "' does not include an file name");
- }
-
- String appenderName = logFile.substring(0, pos);
- String fileName = logFile.substring(pos + 1);
-
- List<LogFileDetails> appenderFiles = cache.get(appenderName);
- if (appenderFiles == null)
- {
- Appender fileAppender = null;
- for (Appender appender : _appenders)
- {
- if (appenderName.equals(appender.getName()))
- {
- fileAppender = appender;
- break;
- }
- }
- if (fileAppender == null)
- {
- continue;
- }
- appenderFiles = getAppenderFiles(fileAppender, true);
- if (appenderFiles == null)
- {
- continue;
- }
- cache.put(appenderName, appenderFiles);
- }
- for (LogFileDetails logFileDetails : appenderFiles)
- {
- if (logFileDetails.getName().equals(fileName))
- {
- logFiles.add(logFileDetails);
- break;
- }
- }
- }
- return logFiles;
+ throw new UnsupportedOperationException();
}
public List<LogFileDetails> getLogFileDetails(boolean
includeLogFileLocation)
{
- List<LogFileDetails> results = new ArrayList<LogFileDetails>();
- for (Appender appender : _appenders)
- {
- List<LogFileDetails> appenderFiles = getAppenderFiles(appender,
includeLogFileLocation);
- if (appenderFiles != null)
- {
- results.addAll(appenderFiles);
- }
- }
- return results;
+ throw new UnsupportedOperationException();
}
public void writeLogFiles(List<LogFileDetails> logFiles, OutputStream os)
throws IOException
@@ -153,76 +85,6 @@ public class LogFileHelper
}
}
- private List<LogFileDetails> getAppenderFiles(Appender appender, boolean
includeLogFileLocation)
- {
- if (appender instanceof QpidCompositeRollingAppender)
- {
- return
listQpidCompositeRollingAppenderFiles((QpidCompositeRollingAppender) appender,
includeLogFileLocation);
- }
- else if (appender instanceof FileAppender)
- {
- return listFileAppenderFiles((FileAppender) appender,
includeLogFileLocation);
- }
- return null;
- }
-
- private List<LogFileDetails> listFileAppenderFiles(FileAppender appender,
boolean includeLogFileLocation)
- {
- String appenderFilePath = appender.getFile();
- File appenderFile = new File(appenderFilePath);
- if (appenderFile.exists())
- {
- return listLogFiles(appenderFile.getParentFile(),
appenderFile.getName(), appender.getName(), "", includeLogFileLocation);
- }
- return Collections.emptyList();
- }
-
- private List<LogFileDetails>
listQpidCompositeRollingAppenderFiles(QpidCompositeRollingAppender appender,
boolean includeLogFileLocation)
- {
- List<LogFileDetails> files = listFileAppenderFiles((FileAppender)
appender, includeLogFileLocation);
- String appenderFilePath = appender.getFile();
- File appenderFile = new File(appenderFilePath);
- File backupFolder = new File(appender.getBackupFilesToPath());
- if (backupFolder.exists())
- {
- String backupFolderName = backupFolder.getName() + "/";
- List<LogFileDetails> backedUpFiles = listLogFiles(backupFolder,
appenderFile.getName(), appender.getName(),
- backupFolderName, includeLogFileLocation);
- files.addAll(backedUpFiles);
- }
- return files;
- }
-
- private List<LogFileDetails> listLogFiles(File parent, String
baseFileName, String appenderName, String relativePath,
- boolean includeLogFileLocation)
- {
- List<LogFileDetails> files = new ArrayList<LogFileDetails>();
- for (File file : parent.listFiles())
- {
- String name = file.getName();
- if (name.startsWith(baseFileName))
- {
- String displayPath = name;
- if (!relativePath.equals(""))
- {
- displayPath = relativePath + name;
- }
- files.add(new LogFileDetails(displayPath, appenderName,
includeLogFileLocation ? file : null, getMimeType(name), file.length(),
- file.lastModified()));
- }
- }
- return files;
- }
-
- private String getMimeType(String fileName)
- {
- if (fileName.endsWith(GZIP_EXTENSION))
- {
- return GZIP_MIME_TYPE;
- }
- return TEXT_MIME_TYPE;
- }
-
private void addLogFileEntries(List<LogFileDetails> files, ZipOutputStream
out) throws IOException
{
for (LogFileDetails logFileDetails : files)
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
Wed Apr 29 17:10:35 2015
@@ -20,7 +20,6 @@ package org.apache.qpid.server.managemen
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
-import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -28,7 +27,6 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.log4j.LogManager;
import org.apache.qpid.server.management.plugin.log.LogFileDetails;
import org.apache.qpid.server.management.plugin.log.LogFileHelper;
import org.apache.qpid.server.management.plugin.servlet.rest.AbstractServlet;
@@ -65,7 +63,8 @@ public class LogFileServlet extends Abst
}
@SuppressWarnings("unchecked")
- LogFileHelper helper = new
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
+ // QPID-6516 : TODO
+ LogFileHelper helper = null; //new
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
List<LogFileDetails> logFiles = null;
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
Wed Apr 29 17:10:35 2015
@@ -26,7 +26,6 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.log4j.LogManager;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
@@ -52,7 +51,8 @@ public class LogFileListingServlet exten
}
@SuppressWarnings("unchecked")
- LogFileHelper helper = new
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
+ // QPID-6516 : TODO
+ LogFileHelper helper = null; // new
LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
List<LogFileDetails> logFiles = helper.getLogFileDetails(false);
response.setContentType("application/json");
response.setStatus(HttpServletResponse.SC_OK);
Modified: qpid/java/trunk/broker-plugins/management-jmx/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-jmx/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-jmx/pom.xml (original)
+++ qpid/java/trunk/broker-plugins/management-jmx/pom.xml Wed Apr 29 17:10:35
2015
@@ -29,6 +29,10 @@
<name>Qpid JMX Management Broker Plug-in</name>
<description>JMX management broker plug-in</description>
+ <properties>
+ <qpid.home>${basedir}/../</qpid.home> <!-- override for broker tests -->
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.apache.qpid</groupId>
@@ -51,9 +55,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<!-- test dependencies -->
Modified:
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
(original)
+++
qpid/java/trunk/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBean.java
Wed Apr 29 17:10:35 2015
@@ -87,7 +87,8 @@ public class LoggingManagementMBean exte
super(LoggingManagement.class, LoggingManagement.TYPE, registry);
register();
_loggingManagementFacade = loggingManagementFacade;
- _allAvailableLogLevels =
buildAllAvailableLoggerLevelsWithInheritedPsuedoLogLevel(_loggingManagementFacade);
+ // QPID-6516 : TODO
+ _allAvailableLogLevels =
null;//buildAllAvailableLoggerLevelsWithInheritedPsuedoLogLevel(_loggingManagementFacade);
}
@Override
Modified:
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
(original)
+++
qpid/java/trunk/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/LoggingManagementMBeanTest.java
Wed Apr 29 17:10:35 2015
@@ -40,8 +40,9 @@ import junit.framework.TestCase;
import org.apache.qpid.management.common.mbeans.LoggingManagement;
import org.apache.qpid.server.jmx.ManagedObjectRegistry;
import org.apache.qpid.server.logging.log4j.LoggingManagementFacade;
+import org.apache.qpid.test.utils.QpidTestCase;
-public class LoggingManagementMBeanTest extends TestCase
+public class LoggingManagementMBeanTest extends QpidTestCase
{
private static final String TEST_LEVEL1 = "LEVEL1";
private static final String TEST_LEVEL2 = "LEVEL2";
Added: qpid/java/trunk/broker/etc/logback.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker/etc/logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/broker/etc/logback.xml (added)
+++ qpid/java/trunk/broker/etc/logback.xml Wed Apr 29 17:10:35 2015
@@ -0,0 +1,64 @@
+<?xml version="1.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.
+ -
+ -->
+<configuration scan="true" scanPeriod="10 seconds">
+ <appender name="ArchivingFileAppender"
class="ch.qos.logback.core.RollingFileAppender">
+ <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+ <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- rollover daily -->
+
<fileNamePattern>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
+ <timeBasedFileNamingAndTriggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>1MB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="FileAppender" class="ch.qos.logback.core.FileAppender">
+ <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+ <append>false</append>
+ <encoder>
+ <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <logger name="org.apache.qpid" level="warn" additivity="true"/>
+ <logger name="qpid.message" level="info" additivity="true"/>
+ <logger name="qpid.message.subscription.state" level="off"
additivity="true"/>
+ <logger name="org.apache.qpid.server.queue.NotificationCheck" level="info"
additivity="true"/>
+ <logger name="org.apache.commons" level="warn"/>
+
+ <root level="info">
+ <appender-ref ref="FileAppender"/>
+ <!--appender-ref ref="ArchivingFileAppender"/-->
+ </root>
+ <!-- General logging hierarchy --><!-- Operational logging hierarchy
--><!-- Subscription state may toggle frequently for clients with low prefetch
+ so switch off this operational logging by default--><!-- Enable log
messages for the queue notifications --><!-- Set the commons logging that the
XML parser uses to WARN, it is very chatty at debug --><!-- Log all info events
to file -->
+</configuration>
Propchange: qpid/java/trunk/broker/etc/logback.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: qpid/java/trunk/broker/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker/pom.xml (original)
+++ qpid/java/trunk/broker/pom.xml Wed Apr 29 17:10:35 2015
@@ -46,9 +46,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
Modified: qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java
(original)
+++ qpid/java/trunk/broker/src/main/java/org/apache/qpid/server/Main.java Wed
Apr 29 17:10:35 2015
@@ -81,11 +81,6 @@ public class Main
+ "default looks for a file named " +
BrokerOptions.DEFAULT_LOG_CONFIG_FILE
+ " in the same directory as the
configuration file").withLongOpt("logconfig").create("l");
- private static final Option OPTION_LOG_WATCH =
- OptionBuilder.withArgName("period").hasArg()
- .withDescription("monitor the log file configuration file
for changes. Units are seconds. "
- + "Zero means do not check for
changes.").withLongOpt("logwatch").create("w");
-
private static final Option OPTION_MANAGEMENT_MODE =
OptionBuilder.withDescription("start broker in management mode, disabling the
AMQP ports")
.withLongOpt("management-mode").create("mm");
private static final Option OPTION_MM_QUIESCE_VHOST =
OptionBuilder.withDescription("make virtualhosts stay in the quiesced state
during management mode.")
@@ -113,7 +108,6 @@ public class Main
OPTIONS.addOption(OPTION_OVERWRITE_CONFIGURATION_STORE);
OPTIONS.addOption(OPTION_CREATE_INITIAL_CONFIG);
OPTIONS.addOption(OPTION_LOG_CONFIG_FILE);
- OPTIONS.addOption(OPTION_LOG_WATCH);
OPTIONS.addOption(OPTION_INITIAL_CONFIGURATION_PATH);
OPTIONS.addOption(OPTION_MANAGEMENT_MODE);
OPTIONS.addOption(OPTION_MM_QUIESCE_VHOST);
@@ -129,14 +123,6 @@ public class Main
public static void main(String[] args)
{
- //if the -Dlog4j.configuration property has not been set, enable the
init override
- //to stop Log4J wondering off and picking up the first
log4j.xml/properties file it
- //finds from the classpath when we get the first Loggers
- if(System.getProperty("log4j.configuration") == null)
- {
- System.setProperty("log4j.defaultInitOverride", "true");
- }
-
new Main(args);
}
@@ -270,12 +256,6 @@ public class Main
options.setConfigurationStoreType(configurationStoreType);
}
- String logWatchConfig =
_commandLine.getOptionValue(OPTION_LOG_WATCH.getOpt());
- if(logWatchConfig != null)
- {
- options.setLogWatchFrequency(Integer.parseInt(logWatchConfig));
- }
-
String logConfig =
_commandLine.getOptionValue(OPTION_LOG_CONFIG_FILE.getOpt());
if(logConfig != null)
{
Modified:
qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java
(original)
+++ qpid/java/trunk/broker/src/test/java/org/apache/qpid/server/MainTest.java
Wed Apr 29 17:10:35 2015
@@ -51,7 +51,6 @@ public class MainTest extends QpidTestCa
assertEquals("JSON", options.getConfigurationStoreType());
assertEquals(expectedStorePath,
options.getConfigurationStoreLocation());
assertEquals(expectedLogConfigPath,
options.getLogConfigFileLocation());
- assertEquals(0, options.getLogWatchFrequency());
assertEquals(BrokerOptions.DEFAULT_INITIAL_CONFIG_LOCATION,
options.getInitialConfigurationLocation());
assertFalse(options.isOverwriteConfigurationStore());
assertFalse(options.isManagementMode());
@@ -94,13 +93,6 @@ public class MainTest extends QpidTestCa
assertEquals("wxyz/log4j.xml", options.getLogConfigFileLocation());
}
- public void testLogWatch()
- {
- BrokerOptions options = startDummyMain("-w 9");
-
- assertEquals(9, options.getLogWatchFrequency());
- }
-
public void testVersion()
{
final TestMain main = new TestMain("-v".split("\\s"));
Added: qpid/java/trunk/etc/logback.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/etc/logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/etc/logback.xml (added)
+++ qpid/java/trunk/etc/logback.xml Wed Apr 29 17:10:35 2015
@@ -0,0 +1,32 @@
+<?xml version="1.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.
+-->
+<configuration scan="true" scanPeriod="10 seconds">
+ <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+ <target>System.out</target>
+ <encoder>
+ <pattern>%m%n</pattern>
+ </encoder>
+ </appender>
+
+
+ <root level="">
+ <appender-ref ref="CONSOLE"/>
+ </root>
+</configuration>
Propchange: qpid/java/trunk/etc/logback.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: qpid/java/trunk/perftests/example/brokerconfig/logback.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/perftests/example/brokerconfig/logback.xml?rev=1676797&view=auto
==============================================================================
--- qpid/java/trunk/perftests/example/brokerconfig/logback.xml (added)
+++ qpid/java/trunk/perftests/example/brokerconfig/logback.xml Wed Apr 29
17:10:35 2015
@@ -0,0 +1,59 @@
+<?xml version="1.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.
+ -
+ -->
+<configuration scan="true" scanPeriod="10 seconds">
+ <appender name="ArchivingFileAppender"
class="ch.qos.logback.core.RollingFileAppender">
+ <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+ <rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- rollover daily -->
+
<fileNamePattern>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
+ <timeBasedFileNamingAndTriggeringPolicy
+ class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+ <maxFileSize>1MB</maxFileSize>
+ </timeBasedFileNamingAndTriggeringPolicy>
+ </rollingPolicy>
+ <encoder>
+ <pattern>%d %-5p [%t] \(%c{2}\) - %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="FileAppender" class="ch.qos.logback.core.FileAppender">
+ <file>${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log</file>
+ <append>false</append>
+ <layout>
+ <pattern>%d %-5p [%t] \(%F:%L\) - %m%n</pattern>
+ </layout>
+ </appender>
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d %-5p [%t] \(%F:%L\) - %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <logger name="qpid.message" level="info" additivity="true"/>
+ <logger name="org.apache.commons" level="WARN"/>
+
+ <root level="">
+ <appender-ref ref="FileAppender"/>
+ <!--appender-ref ref="ArchivingFileAppender"/-->
+ </root>
+</configuration>
Propchange: qpid/java/trunk/perftests/example/brokerconfig/logback.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: qpid/java/trunk/perftests/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/perftests/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/perftests/pom.xml (original)
+++ qpid/java/trunk/perftests/pom.xml Wed Apr 29 17:10:35 2015
@@ -49,16 +49,9 @@
<!-- other deps -->
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j-version}</version>
- <scope>runtime</scope>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
Modified: qpid/java/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/pom.xml (original)
+++ qpid/java/trunk/pom.xml Wed Apr 29 17:10:35 2015
@@ -76,6 +76,7 @@
<at.sign>@</at.sign>
<bdb-version>5.0.104</bdb-version>
<derby-version>10.11.1.1</derby-version>
+ <logback-version>1.1.3</logback-version>
</properties>
<modules>
@@ -209,6 +210,7 @@
<includes>
<include>**/*Test.java</include>
</includes>
+ <redirectTestOutputToFile>true</redirectTestOutputToFile>
<systemPropertyVariables>
<!-- Defaults -->
<QPID_HOME>${qpid.home}</QPID_HOME>
Modified: qpid/java/trunk/qpid-systests-parent/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/qpid-systests-parent/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/qpid-systests-parent/pom.xml (original)
+++ qpid/java/trunk/qpid-systests-parent/pom.xml Wed Apr 29 17:10:35 2015
@@ -59,9 +59,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
@@ -86,13 +86,13 @@
<systemPropertyVariables>
<java.naming.provider.url>test-profiles${file.separator}test-provider.properties</java.naming.provider.url>
<test.output.dir>${test.output.dir}</test.output.dir>
-
<log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/log4j.xml</log4j.configuration.file>
+
<log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/logback.xml</log4j.configuration.file>
<!-- Let the tests themselves configure logging so that we can
have a separate log file per test
named after the test. -->
<log4j.debug>false</log4j.debug>
<log4j.defaultInitOverride>true</log4j.defaultInitOverride>
<!-- A log4j config file that sends all the Broker's output to
stdout -->
-
<spawnedbroker.log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/spawned-broker-log4j.xml</spawnedbroker.log4j.configuration.file>
+
<spawnedbroker.log4j.configuration.file>${basedir}${file.separator}target${file.separator}classes/spawned-broker-logback.xml</spawnedbroker.log4j.configuration.file>
</systemPropertyVariables>
</configuration>
<executions>
Modified: qpid/java/trunk/qpid-test-utils/pom.xml
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/qpid-test-utils/pom.xml?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
--- qpid/java/trunk/qpid-test-utils/pom.xml (original)
+++ qpid/java/trunk/qpid-test-utils/pom.xml Wed Apr 29 17:10:35 2015
@@ -36,9 +36,9 @@
</dependency>
<dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j-version}</version>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>${logback-version}</version>
</dependency>
<dependency>
@@ -47,12 +47,6 @@
<version>${slf4j-version}</version>
</dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j-version}</version>
- </dependency>
-
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
Modified:
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java?rev=1676797&r1=1676796&r2=1676797&view=diff
==============================================================================
---
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
(original)
+++
qpid/java/trunk/qpid-test-utils/src/main/java/org/apache/qpid/test/utils/QpidTestCase.java
Wed Apr 29 17:10:35 2015
@@ -32,8 +32,8 @@ import java.util.NoSuchElementException;
import junit.framework.TestCase;
import junit.framework.TestResult;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class QpidTestCase extends TestCase
{
@@ -48,9 +48,8 @@ public class QpidTestCase extends TestCa
public static final String TMP_FOLDER =
System.getProperty("java.io.tmpdir");
public static final String SPAWNED_BROKER_LOG4J_CONFIG_FILE_PATH =
System.getProperty("spawnedbroker.log4j.configuration.file");
- private static final Logger _logger = Logger.getLogger(QpidTestCase.class);
+ private static final Logger _logger =
LoggerFactory.getLogger(QpidTestCase.class);
- private final Map<Logger, Level> _loggerLevelSetForTest = new
HashMap<Logger, Level>();
private final Map<String, String> _propertiesSetForTest = new
HashMap<String, String>();
private String _testName;
@@ -236,44 +235,10 @@ public class QpidTestCase extends TestCa
}
}
- /**
- * Adjust the VMs Log4j Settings just for this test run
- *
- * @param logger the logger to change
- * @param level the level to set
- */
- protected void setLoggerLevel(Logger logger, Level level)
- {
- assertNotNull("Cannot set level of null logger", logger);
- assertNotNull("Cannot set Logger("+logger.getName()+") to null
level.",level);
-
- if (!_loggerLevelSetForTest.containsKey(logger))
- {
- // Record the current value so we can revert it later.
- _loggerLevelSetForTest.put(logger, logger.getLevel());
- }
-
- logger.setLevel(level);
- }
-
- /**
- * Restore the logging levels defined by this test.
- */
- protected void revertLoggingLevels()
- {
- for (Logger logger : _loggerLevelSetForTest.keySet())
- {
- logger.setLevel(_loggerLevelSetForTest.get(logger));
- }
-
- _loggerLevelSetForTest.clear();
- }
-
protected void tearDown() throws java.lang.Exception
{
_logger.info("========== tearDown " + _testName + " ==========");
revertTestSystemProperties();
- revertLoggingLevels();
}
protected void setUp() throws Exception
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]