You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2016/03/27 15:09:59 UTC
svn commit: r1736745 - in /jmeter/trunk: ./ lib/ res/maven/
src/core/org/apache/jmeter/logging/ src/core/org/slf4j/
src/core/org/slf4j/impl/ xdocs/
Author: pmouawad
Date: Sun Mar 27 13:09:58 2016
New Revision: 1736745
URL: http://svn.apache.org/viewvc?rev=1736745&view=rev
Log:
Bug 59240 - Introduce a slf4j binding for Logback
Bugzilla Id: 59240
Added:
jmeter/trunk/src/core/org/apache/jmeter/logging/
jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerAdapter.java (with props)
jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerFactory.java (with props)
jmeter/trunk/src/core/org/slf4j/
jmeter/trunk/src/core/org/slf4j/impl/
jmeter/trunk/src/core/org/slf4j/impl/StaticLoggerBinder.java (with props)
Modified:
jmeter/trunk/build.xml
jmeter/trunk/eclipse.classpath
jmeter/trunk/lib/ (props changed)
jmeter/trunk/lib/aareadme.txt
jmeter/trunk/res/maven/ApacheJMeter_parent.pom
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/build.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/build.xml?rev=1736745&r1=1736744&r2=1736745&view=diff
==============================================================================
--- jmeter/trunk/build.xml (original)
+++ jmeter/trunk/build.xml Sun Mar 27 13:09:58 2016
@@ -404,7 +404,6 @@
<include name="${lib.dir}/${rsyntaxtextarea.jar}"/>
<include name="${lib.dir}/${serializer.jar}"/>
<include name="${lib.dir}/${slf4j-api.jar}"/>
- <include name="${lib.dir}/${slf4j-nop.jar}"/>
<include name="${lib.dir}/${jtidy.jar}"/>
<include name="${lib.dir}/${tika-core.jar}"/>
<include name="${lib.dir}/${tika-parsers.jar}"/>
@@ -478,7 +477,6 @@
<pathelement location="${lib.dir}/${rsyntaxtextarea.jar}"/>
<pathelement location="${lib.dir}/${serializer.jar}"/>
<pathelement location="${lib.dir}/${slf4j-api.jar}"/>
- <pathelement location="${lib.dir}/${slf4j-nop.jar}"/>
<pathelement location="${lib.dir}/${jtidy.jar}"/>
<pathelement location="${lib.dir}/${tika-core.jar}"/>
<pathelement location="${lib.dir}/${tika-parsers.jar}"/>
@@ -2899,7 +2897,6 @@ run JMeter unless all the JMeter jars ar
<process_jarfile jarname="rsyntaxtextarea"/>
<process_jarfile jarname="serializer"/>
<process_jarfile jarname="slf4j-api"/>
- <process_jarfile jarname="slf4j-nop"/>
<process_jarfile jarname="jtidy"/>
<process_jarfile jarname="tika-core"/>
<process_jarfile jarname="tika-parsers"/>
Modified: jmeter/trunk/eclipse.classpath
URL: http://svn.apache.org/viewvc/jmeter/trunk/eclipse.classpath?rev=1736745&r1=1736744&r2=1736745&view=diff
==============================================================================
--- jmeter/trunk/eclipse.classpath (original)
+++ jmeter/trunk/eclipse.classpath Sun Mar 27 13:09:58 2016
@@ -88,7 +88,6 @@
<classpathentry kind="lib" path="lib/rsyntaxtextarea-2.5.8.jar"/>
<classpathentry kind="lib" path="lib/serializer-2.7.2.jar"/>
<classpathentry kind="lib" path="lib/slf4j-api-1.7.13.jar"/>
- <classpathentry kind="lib" path="lib/slf4j-nop-1.7.13.jar"/>
<classpathentry kind="lib" path="lib/tika-core-1.12.jar"/>
<classpathentry kind="lib" path="lib/tika-parsers-1.12.jar"/>
<classpathentry kind="lib" path="lib/xalan-2.7.2.jar"/>
Propchange: jmeter/trunk/lib/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sun Mar 27 13:09:58 2016
@@ -48,7 +48,6 @@ oro-2.0.8.jar
rhino-1.7.7.1.jar
serializer-2.7.2.jar
slf4j-api-1.7.13.jar
-slf4j-nop-1.7.13.jar
tika-core-1.12.jar
tika-parsers-1.12.jar
xalan-2.7.2.jar
Modified: jmeter/trunk/lib/aareadme.txt
URL: http://svn.apache.org/viewvc/jmeter/trunk/lib/aareadme.txt?rev=1736745&r1=1736744&r2=1736745&view=diff
==============================================================================
--- jmeter/trunk/lib/aareadme.txt (original)
+++ jmeter/trunk/lib/aareadme.txt Sun Mar 27 13:09:58 2016
@@ -211,10 +211,11 @@ serialiser-2.7.1
http://www.apache.org/dyn/closer.cgi/xml/xalan-j
- xalan
-slf4j-api-1.7.13, slf4j-nop-1.7.13
+slf4j-api-1.7.13
----------------
http://www.slf4j.org/
- jodd-core
+- json-path
tika-1.12
--------------
Modified: jmeter/trunk/res/maven/ApacheJMeter_parent.pom
URL: http://svn.apache.org/viewvc/jmeter/trunk/res/maven/ApacheJMeter_parent.pom?rev=1736745&r1=1736744&r2=1736745&view=diff
==============================================================================
--- jmeter/trunk/res/maven/ApacheJMeter_parent.pom (original)
+++ jmeter/trunk/res/maven/ApacheJMeter_parent.pom Sun Mar 27 13:09:58 2016
@@ -95,7 +95,6 @@ under the License.
<mongo-java-driver.version>2.11.3</mongo-java-driver.version>
<rsyntaxtextarea.version>2.5.8</rsyntaxtextarea.version>
<slf4j-api.version>1.7.13</slf4j-api.version>
- <slf4j-nop.version>1.7.13</slf4j-nop.version>
<jtidy.version>r938</jtidy.version>
<tika-core.version>1.12</tika-core.version>
<tika-parsers.version>1.12</tika-parsers.version>
@@ -376,11 +375,6 @@ under the License.
<version>${slf4j-api.version}</version>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-nop</artifactId>
- <version>${slf4j-nop.version}</version>
- </dependency>
- <dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
Added: jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerAdapter.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerAdapter.java?rev=1736745&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerAdapter.java (added)
+++ jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerAdapter.java Sun Mar 27 13:09:58 2016
@@ -0,0 +1,334 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.logging;
+
+import java.io.Serializable;
+
+import org.apache.log.Logger;
+import org.apache.log.Priority;
+import org.slf4j.helpers.FormattingTuple;
+import org.slf4j.helpers.MarkerIgnoringBase;
+import org.slf4j.helpers.MessageFormatter;
+
+/**
+ * Logback adapter for slf4j
+ * @since 3.0
+ */
+public class LogbackLoggerAdapter extends MarkerIgnoringBase implements Serializable {
+
+ final transient Logger logger;
+ /**
+ *
+ */
+ private static final long serialVersionUID = -122848886791823355L;
+
+ LogbackLoggerAdapter(org.apache.log.Logger logbackLogger) {
+ this.logger = logbackLogger;
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#debug(java.lang.String)
+ */
+ @Override
+ public void debug(String msg) {
+ logger.debug(msg);
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void debug(String format, Object arg) {
+ if (logger.isDebugEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg);
+ logger.log(Priority.DEBUG, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object[])
+ */
+ @Override
+ public void debug(String format, Object... args) {
+ if (logger.isDebugEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, args);
+ logger.log(Priority.DEBUG, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#debug(java.lang.String, java.lang.Throwable)
+ */
+ @Override
+ public void debug(String msg, Throwable throwable) {
+ if (logger.isDebugEnabled()) {
+ logger.log(Priority.DEBUG, msg, throwable);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void debug(String format, Object arg1, Object arg2) {
+ if (logger.isDebugEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg1, arg2);
+ logger.log(Priority.DEBUG, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#error(java.lang.String)
+ */
+ @Override
+ public void error(String message) {
+ if (logger.isErrorEnabled()) {
+ logger.log(Priority.ERROR, message);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#error(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void error(String format, Object arg) {
+ if (logger.isErrorEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg);
+ logger.log(Priority.ERROR, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#error(java.lang.String, java.lang.Object[])
+ */
+ @Override
+ public void error(String format, Object... args) {
+ if (logger.isErrorEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, args);
+ logger.log(Priority.ERROR, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#error(java.lang.String, java.lang.Throwable)
+ */
+ @Override
+ public void error(String message, Throwable throwable) {
+ if (logger.isErrorEnabled()) {
+ logger.log(Priority.ERROR, message, throwable);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#error(java.lang.String, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void error(String format, Object arg1, Object arg2) {
+ if (logger.isErrorEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg1, arg2);
+ logger.log(Priority.ERROR, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#info(java.lang.String)
+ */
+ @Override
+ public void info(String message) {
+ if (logger.isInfoEnabled()) {
+ logger.log(Priority.ERROR, message);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#info(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void info(String format, Object arg1) {
+ if (logger.isInfoEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg1);
+ logger.log(Priority.INFO, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#info(java.lang.String, java.lang.Object[])
+ */
+ @Override
+ public void info(String format, Object... args) {
+ if (logger.isInfoEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, args);
+ logger.log(Priority.INFO, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#info(java.lang.String, java.lang.Throwable)
+ */
+ @Override
+ public void info(String message, Throwable throwable) {
+ if (logger.isInfoEnabled()) {
+ logger.log(Priority.INFO, message, throwable);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#info(java.lang.String, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void info(String format, Object arg1, Object arg2) {
+ if (logger.isInfoEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg1, arg2);
+ logger.log(Priority.INFO, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#isDebugEnabled()
+ */
+ @Override
+ public boolean isDebugEnabled() {
+ return logger.isDebugEnabled();
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#isErrorEnabled()
+ */
+ @Override
+ public boolean isErrorEnabled() {
+ return logger.isErrorEnabled();
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#isInfoEnabled()
+ */
+ @Override
+ public boolean isInfoEnabled() {
+ return logger.isInfoEnabled();
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#isTraceEnabled()
+ */
+ @Override
+ public boolean isTraceEnabled() {
+ return logger.isDebugEnabled();
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#isWarnEnabled()
+ */
+ @Override
+ public boolean isWarnEnabled() {
+ return logger.isWarnEnabled();
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#warn(java.lang.String)
+ */
+ @Override
+ public void warn(String message) {
+ if (logger.isWarnEnabled()) {
+ logger.log(Priority.WARN, message);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void warn(String format, Object arg) {
+ if (logger.isWarnEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg);
+ logger.log(Priority.WARN, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object[])
+ */
+ @Override
+ public void warn(String format, Object... args) {
+ if (logger.isWarnEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, args);
+ logger.log(Priority.WARN, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#warn(java.lang.String, java.lang.Throwable)
+ */
+ @Override
+ public void warn(String message, Throwable throwable) {
+ if (logger.isWarnEnabled()) {
+ logger.log(Priority.WARN, message, throwable);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void warn(String format, Object arg1, Object arg2) {
+ if (logger.isWarnEnabled()) {
+ FormattingTuple ft = MessageFormatter.format(format, arg1, arg2);
+ logger.log(Priority.WARN, ft.getMessage(), ft.getThrowable());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#trace(java.lang.String)
+ */
+ @Override
+ public void trace(String message) {
+ debug(message);
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object)
+ */
+ @Override
+ public void trace(String format, Object arg) {
+ debug(format, arg);
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object[])
+ */
+ @Override
+ public void trace(String format, Object... args) {
+ debug(format, args);
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#trace(java.lang.String, java.lang.Throwable)
+ */
+ @Override
+ public void trace(String message, Throwable throwable) {
+ debug(message, throwable);
+ }
+
+ /* (non-Javadoc)
+ * @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public void trace(String format, Object arg1, Object arg2) {
+ debug(format, arg1, arg2);
+ }
+}
Propchange: jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerAdapter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerFactory.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerFactory.java?rev=1736745&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerFactory.java (added)
+++ jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerFactory.java Sun Mar 27 13:09:58 2016
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.jmeter.logging;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Hierarchy;
+import org.slf4j.ILoggerFactory;
+import org.slf4j.Logger;
+
+/**
+ * Implementation of {@link ILoggerFactory} for Logback
+ * @since 3.0
+ */
+public class LogbackLoggerFactory implements ILoggerFactory {
+ // key: name (String), value: a Log4jLoggerAdapter;
+ Map<String, Logger> loggerMap;
+
+ /**
+ *
+ */
+ public LogbackLoggerFactory() {
+ loggerMap = new HashMap<String, Logger>();
+ }
+
+ /**
+ *
+ * @see org.slf4j.ILoggerFactory#getLogger(java.lang.String)
+ */
+ @Override
+ public Logger getLogger(String name) {
+ Logger slf4jLogger = null;
+ // protect against concurrent access of loggerMap
+ synchronized (this) {
+ slf4jLogger = loggerMap.get(name);
+ if (slf4jLogger == null) {
+ org.apache.log.Logger logbackLogger;
+ if (name.equalsIgnoreCase(Logger.ROOT_LOGGER_NAME)) {
+ logbackLogger = Hierarchy.getDefaultHierarchy().getRootLogger();
+ } else {
+ logbackLogger = LoggingManager.getLoggerFor(name);
+ }
+ slf4jLogger = new LogbackLoggerAdapter(logbackLogger);
+ loggerMap.put(name, slf4jLogger);
+ }
+ }
+ return slf4jLogger;
+ }
+
+}
Propchange: jmeter/trunk/src/core/org/apache/jmeter/logging/LogbackLoggerFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jmeter/trunk/src/core/org/slf4j/impl/StaticLoggerBinder.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/slf4j/impl/StaticLoggerBinder.java?rev=1736745&view=auto
==============================================================================
--- jmeter/trunk/src/core/org/slf4j/impl/StaticLoggerBinder.java (added)
+++ jmeter/trunk/src/core/org/slf4j/impl/StaticLoggerBinder.java Sun Mar 27 13:09:58 2016
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.slf4j.impl;
+
+import org.apache.jmeter.logging.LogbackLoggerFactory;
+import org.slf4j.ILoggerFactory;
+import org.slf4j.LoggerFactory;
+import org.slf4j.spi.LoggerFactoryBinder;
+
+/**
+ * The binding of {@link LoggerFactory} class with an actual instance of
+ * {@link ILoggerFactory} is performed using information returned by this class.
+ *
+ * @since 3.0
+ */
+public class StaticLoggerBinder implements LoggerFactoryBinder {
+
+ /**
+ * The unique instance of this class.
+ *
+ */
+ private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
+
+ /**
+ * Return the singleton of this class.
+ *
+ * @return the StaticLoggerBinder singleton
+ */
+ public static final StaticLoggerBinder getSingleton() {
+ return SINGLETON;
+ }
+
+ /**
+ * Declare the version of the SLF4J API this implementation is compiled
+ * against. The value of this field is usually modified with each release.
+ */
+ // to avoid constant folding by the compiler, this field must *not* be final
+ public static String REQUESTED_API_VERSION = "1.7"; // !final
+
+ private static final String loggerFactoryClassStr = LogbackLoggerFactory.class
+ .getName();
+
+ /**
+ * The ILoggerFactory instance returned by the {@link #getLoggerFactory}
+ * method should always be the same object
+ */
+ private final ILoggerFactory loggerFactory;
+
+ private StaticLoggerBinder() {
+ loggerFactory = new LogbackLoggerFactory();
+ }
+
+ @Override
+ public ILoggerFactory getLoggerFactory() {
+ return loggerFactory;
+ }
+
+ @Override
+ public String getLoggerFactoryClassStr() {
+ return loggerFactoryClassStr;
+ }
+}
Propchange: jmeter/trunk/src/core/org/slf4j/impl/StaticLoggerBinder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1736745&r1=1736744&r2=1736745&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Sun Mar 27 13:09:58 2016
@@ -343,6 +343,7 @@ Deprecated Libraries dropped or replaced
<li><bug>59207</bug>Change the font color of errorsOrFatalsLabel to red when an error occurs. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
<li><bug>58941</bug>Create a new Starter that runs thread groups in validation mode (1 thread only, 1 iteration, no pause all customizable)</li>
<li><bug>59236</bug>JMeter Properties : Make some cleanup</li>
+<li><bug>59240</bug>Introduce a slf4j binding for Logback</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>