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 2017/02/11 08:27:36 UTC
svn commit: r1782553 - in /jmeter/trunk/src:
components/org/apache/jmeter/visualizers/backend/
functions/org/apache/jmeter/functions/
protocol/java/org/apache/jmeter/protocol/java/sampler/
Author: pmouawad
Date: Sat Feb 11 08:27:36 2017
New Revision: 1782553
URL: http://svn.apache.org/viewvc?rev=1782553&view=rev
Log:
Bug 60564 - Migrating LogKit to SLF4J - components (1), functions, protocol, test (1/2)
Contributed by Woonsan Ko
This comments #274
Bugzilla Id: 60564
Modified:
jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.java
jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction.java
jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction2.java
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.java
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JSR223Sampler.java
Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.java?rev=1782553&r1=1782552&r2=1782553&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.java Sat Feb 11 08:27:36 2017
@@ -23,6 +23,7 @@ import java.util.concurrent.ConcurrentHa
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.samplers.SampleResult;
+import org.apache.jorphan.logging.LoggingManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,6 +55,9 @@ import org.slf4j.LoggerFactory;
public abstract class AbstractBackendListenerClient implements BackendListenerClient {
private static final Logger log = LoggerFactory.getLogger(AbstractBackendListenerClient.class);
+
+ private static final org.apache.log.Logger oldLogger = LoggingManager.getLoggerForClass();
+
private UserMetric userMetrics = new UserMetric();
private ConcurrentHashMap<String, SamplerMetric> metricsPerSampler = new ConcurrentHashMap<>();
@@ -89,8 +93,20 @@ public abstract class AbstractBackendLis
* As this class is designed to be subclassed this is useful.
*
* @return a Logger instance which can be used for logging
+ * @deprecated Will be removed in 3.3, use {@link AbstractBackendListenerClient#getNewLogger()}
+ */
+ @Deprecated
+ protected org.apache.log.Logger getLogger() {
+ return oldLogger;
+ }
+
+ /**
+ * Get a Logger instance which can be used by subclasses to log information.
+ * As this class is designed to be subclassed this is useful.
+ *
+ * @return {@link Logger} instance which can be used for logging
*/
- protected Logger getLogger() {
+ protected Logger getNewLogger() {
return log;
}
Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction.java?rev=1782553&r1=1782552&r2=1782553&view=diff
==============================================================================
--- jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction.java (original)
+++ jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction.java Sat Feb 11 08:27:36 2017
@@ -26,9 +26,9 @@ import org.apache.jmeter.engine.util.Com
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
-import org.apache.log.Priority;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.event.Level;
/**
* <p>
@@ -47,7 +47,7 @@ import org.apache.log.Priority;
* @since 2.2
*/
public class LogFunction extends AbstractFunction {
- private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final Logger log = LoggerFactory.getLogger(LogFunction.class);
private static final List<String> desc = new LinkedList<>();
@@ -132,32 +132,52 @@ public class LogFunction extends Abstrac
}
}
- // Routine to perform the output (also used by __logn() function)
- static synchronized void logDetails(Logger l, String s, String prio, Throwable t, String c) {
- if (prio.equalsIgnoreCase("OUT")) //$NON-NLS-1
- {
- printDetails(System.out, s, t, c);
- } else if (prio.equalsIgnoreCase("ERR")) //$NON-NLS-1
- {
- printDetails(System.err, s, t, c);
+ /**
+ * Routine to perform the output (also used by __logn() function)
+ * @param logger {@link Logger}
+ * @param stringToLog String to log
+ * @param priorityString OUT or ERR or Logger priority
+ * @param throwable {@link Throwable}
+ * @param comment If present, it is displayed in the string. Useful for identifying what is being logged.
+ */
+ static synchronized void logDetails(Logger logger, String stringToLog, String priorityString, Throwable throwable,
+ String comment) {
+ String prio = priorityString.trim().toUpperCase();
+
+ if ("OUT".equals(prio)) {//$NON-NLS-1
+ printDetails(System.out, stringToLog, throwable, comment);
+ } else if ("ERR".equals(prio)) {//$NON-NLS-1
+ printDetails(System.err, stringToLog, throwable, comment);
} else {
- // N.B. if the string is not recognised, DEBUG is assumed
- Priority p = Priority.getPriorityForName(prio.trim());
- if (log.isPriorityEnabled(p)) {// Thread method is potentially expensive
- String tn = Thread.currentThread().getName();
- StringBuilder sb = new StringBuilder(40);
- sb.append(tn);
- if (c.length()>0){
- sb.append(' ');
- sb.append(c);
- } else {
- sb.append(DEFAULT_SEPARATOR);
- }
- sb.append(s);
- log.log(p, sb.toString(), t);
+ // N.B. if the string is not recognized, DEBUG is assumed
+ Level prioLevel;
+ try {
+ prioLevel = Level.valueOf(prio);
+ } catch (IllegalArgumentException ignored) {
+ prioLevel = Level.DEBUG;
}
- }
+ final String threadName = Thread.currentThread().getName();
+ final String separator = (comment.isEmpty()) ? DEFAULT_SEPARATOR : comment;
+
+ switch (prioLevel) {
+ case ERROR:
+ logger.error("{} {} {}", threadName, separator, stringToLog, throwable);
+ break;
+ case WARN:
+ logger.warn("{} {} {}", threadName, separator, stringToLog, throwable);
+ break;
+ case INFO:
+ logger.info("{} {} {}", threadName, separator, stringToLog, throwable);
+ break;
+ case DEBUG:
+ logger.debug("{} {} {}", threadName, separator, stringToLog, throwable);
+ break;
+ case TRACE:
+ logger.trace("{} {} {}", threadName, separator, stringToLog, throwable);
+ break;
+ }
+ }
}
/** {@inheritDoc} */
Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction2.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction2.java?rev=1782553&r1=1782552&r2=1782553&view=diff
==============================================================================
--- jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction2.java (original)
+++ jmeter/trunk/src/functions/org/apache/jmeter/functions/LogFunction2.java Sat Feb 11 08:27:36 2017
@@ -26,8 +26,8 @@ import org.apache.jmeter.engine.util.Com
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* <p>
@@ -45,7 +45,7 @@ import org.apache.log.Logger;
* @since 2.2
*/
public class LogFunction2 extends AbstractFunction {
- private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final Logger log = LoggerFactory.getLogger(LogFunction2.class);
private static final List<String> desc = new LinkedList<>();
Modified: jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.java?rev=1782553&r1=1782552&r2=1782553&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.java (original)
+++ jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.java Sat Feb 11 08:27:36 2017
@@ -20,7 +20,7 @@ package org.apache.jmeter.protocol.java.
import org.apache.jmeter.config.Arguments;
import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
+import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
@@ -51,9 +51,9 @@ import org.slf4j.LoggerFactory;
*
*/
public abstract class AbstractJavaSamplerClient implements JavaSamplerClient {
- private static final org.slf4j.Logger logger = LoggerFactory.getLogger(AbstractJavaSamplerClient.class);
+ private static final Logger log = LoggerFactory.getLogger(AbstractJavaSamplerClient.class);
- private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final org.apache.log.Logger oldLogger = LoggingManager.getLoggerForClass();
/* Implements JavaSamplerClient.setupTest(JavaSamplerContext) */
@Override
@@ -82,18 +82,18 @@ public abstract class AbstractJavaSample
* @deprecated Will be removed in 3.3, use {@link AbstractJavaSamplerClient#getNewLogger()}
*/
@Deprecated
- protected Logger getLogger() {
- return log;
+ protected org.apache.log.Logger getLogger() {
+ return oldLogger;
}
-
+
/**
* Get a Logger instance which can be used by subclasses to log information.
* This is the same Logger which is used by the base JavaSampler classes
* (jmeter.protocol.java).
*
- * @return {@link org.slf4j.Logger} instance which can be used for logging
+ * @return {@link Logger} instance which can be used for logging
*/
- protected org.slf4j.Logger getNewLogger() {
- return logger;
+ protected Logger getNewLogger() {
+ return log;
}
}
Modified: jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java?rev=1782553&r1=1782552&r2=1782553&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java (original)
+++ jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BSFSampler.java Sat Feb 11 08:27:36 2017
@@ -37,8 +37,8 @@ import org.apache.jmeter.samplers.Sample
import org.apache.jmeter.testbeans.TestBean;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.BSFTestElement;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A sampler which understands BSF
@@ -49,9 +49,9 @@ public class BSFSampler extends BSFTestE
private static final Set<String> APPLIABLE_CONFIG_CLASSES = new HashSet<>(
Arrays.asList("org.apache.jmeter.config.gui.SimpleConfigGui"));
- private static final long serialVersionUID = 240L;
+ private static final long serialVersionUID = 241L;
- private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final Logger log = LoggerFactory.getLogger(BSFSampler.class);
public BSFSampler() {
super();
@@ -63,7 +63,7 @@ public class BSFSampler extends BSFTestE
final String label = getName();
final String request = getScript();
final String fileName = getFilename();
- log.debug(label + " " + fileName);
+ log.debug("{} {}", label, fileName);
SampleResult res = new SampleResult();
res.setSampleLabel(label);
Modified: jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java?rev=1782553&r1=1782552&r2=1782553&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java (original)
+++ jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/BeanShellSampler.java Sat Feb 11 08:27:36 2017
@@ -31,9 +31,9 @@ import org.apache.jmeter.samplers.Sample
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.BeanShellInterpreter;
import org.apache.jmeter.util.BeanShellTestElement;
-import org.apache.jorphan.logging.LoggingManager;
import org.apache.jorphan.util.JMeterException;
-import org.apache.log.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A sampler which understands BeanShell
@@ -44,9 +44,9 @@ public class BeanShellSampler extends Be
private static final Set<String> APPLIABLE_CONFIG_CLASSES = new HashSet<>(
Arrays.asList("org.apache.jmeter.config.gui.SimpleConfigGui"));
- private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final Logger log = LoggerFactory.getLogger(BeanShellSampler.class);
- private static final long serialVersionUID = 3;
+ private static final long serialVersionUID = 4;
public static final String FILENAME = "BeanShellSampler.filename"; //$NON-NLS-1$
@@ -88,7 +88,6 @@ public class BeanShellSampler extends Be
@Override
public SampleResult sample(Entry e)// Entry tends to be ignored ...
{
- // log.info(getLabel()+" "+getFilename());
SampleResult res = new SampleResult();
boolean isSuccessful = false;
res.setSampleLabel(getName());
@@ -142,13 +141,15 @@ public class BeanShellSampler extends Be
*/
// but we do trap this error to make tests work better
catch (NoClassDefFoundError ex) {
- log.error("BeanShell Jar missing? " + ex.toString());
+ log.error("BeanShell Jar missing? {}", ex.toString());
res.setResponseCode("501");//$NON-NLS-1$
res.setResponseMessage(ex.toString());
res.setStopThread(true); // No point continuing
} catch (Exception ex) // Mainly for bsh.EvalError
{
- log.warn(ex.toString());
+ if (log.isWarnEnabled()) {
+ log.warn("Exception executing script. {}", ex.toString());
+ }
res.setResponseCode("500");//$NON-NLS-1$
res.setResponseMessage(ex.toString());
} finally {
@@ -169,7 +170,9 @@ public class BeanShellSampler extends Be
try {
savedBsh.evalNoLog("interrupt()"); // $NON-NLS-1$
} catch (JMeterException ignored) {
- log.debug(getClass().getName() + " : " + ignored.getLocalizedMessage()); // $NON-NLS-1$
+ if (log.isDebugEnabled()) {
+ log.debug("{} : {}", getClass(), ignored.getLocalizedMessage()); // $NON-NLS-1$
+ }
}
return true;
}
Modified: jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JSR223Sampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JSR223Sampler.java?rev=1782553&r1=1782552&r2=1782553&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JSR223Sampler.java (original)
+++ jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JSR223Sampler.java Sat Feb 11 08:27:36 2017
@@ -35,16 +35,16 @@ import org.apache.jmeter.samplers.Sample
import org.apache.jmeter.testbeans.TestBean;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.util.JSR223TestElement;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class JSR223Sampler extends JSR223TestElement implements Cloneable, Sampler, TestBean, ConfigMergabilityIndicator {
private static final Set<String> APPLIABLE_CONFIG_CLASSES = new HashSet<>(
Arrays.asList("org.apache.jmeter.config.gui.SimpleConfigGui"));
- private static final long serialVersionUID = 234L;
+ private static final long serialVersionUID = 235L;
- private static final Logger log = LoggingManager.getLoggerForClass();
+ private static final Logger log = LoggerFactory.getLogger(JSR223Sampler.class);
@Override
public SampleResult sample(Entry entry) {
@@ -71,7 +71,7 @@ public class JSR223Sampler extends JSR22
result.setResponseData(ret.toString(), null);
}
} catch (IOException | ScriptException e) {
- log.error("Problem in JSR223 script "+getName()+", message:"+e, e);
+ log.error("Problem in JSR223 script {}, message: {}", getName(), e, e);
result.setSuccessful(false);
result.setResponseCode("500"); // $NON-NLS-1$
result.setResponseMessage(e.toString());