You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/05/15 11:51:01 UTC

[1/2] logging-log4j2 git commit: LOG4J2-1179 MarkerFilterBenchmark: change scope to Benchmark, added test for filtering by level

Repository: logging-log4j2
Updated Branches:
  refs/heads/master 7e548f0f6 -> 7c102f610


LOG4J2-1179 MarkerFilterBenchmark: change scope to Benchmark, added test for filtering by level


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/5dbd1b65
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/5dbd1b65
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/5dbd1b65

Branch: refs/heads/master
Commit: 5dbd1b656f2baf83d5e309da67a39b75b20566a0
Parents: 7e548f0
Author: rpopma <rp...@apache.org>
Authored: Sun May 15 20:49:59 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sun May 15 20:49:59 2016 +0900

----------------------------------------------------------------------
 .../log4j/perf/jmh/MarkerFilterBenchmark.java      | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5dbd1b65/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MarkerFilterBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MarkerFilterBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MarkerFilterBenchmark.java
index fc102ea..933f398 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MarkerFilterBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MarkerFilterBenchmark.java
@@ -38,11 +38,10 @@ import org.slf4j.MarkerFactory;
 // java -jar target/benchmarks.jar ".*MarkerFilterBenchmark.*" -f 1 -i 5 -wi 5 -bm sample -tu ns
 // multiple threads (for example, 4 threads):
 // java -jar target/benchmarks.jar ".*MarkerFilterBenchmark.*" -f 1 -i 5 -wi 5 -t 4 -si true -bm sample -tu ns
-@State(Scope.Thread)
+@State(Scope.Benchmark)
 public class MarkerFilterBenchmark {
     Logger log4jLogger;
     org.slf4j.Logger slf4jLogger;
-    Integer j;
     org.slf4j.Marker LOGBACK_FLOW_MARKER;
     org.slf4j.Marker LOGBACK_ENTRY_MARKER;
     Marker LOG4J_FLOW_MARKER;
@@ -59,8 +58,7 @@ public class MarkerFilterBenchmark {
         LOGBACK_ENTRY_MARKER.add(LOGBACK_FLOW_MARKER);
         LOG4J_ENTRY_MARKER.addParents(LOG4J_FLOW_MARKER);
         log4jLogger = LogManager.getLogger(MarkerFilterBenchmark.class);
-        slf4jLogger = LoggerFactory.getLogger(MarkerFilterBenchmark.class);;
-        j = Integer.valueOf(2);
+        slf4jLogger = LoggerFactory.getLogger(MarkerFilterBenchmark.class);
     }
 
     @TearDown
@@ -80,13 +78,17 @@ public class MarkerFilterBenchmark {
         log4jLogger.info(LOG4J_ENTRY_MARKER, "This is a test");
     }
 
-
     @Benchmark
     public void log4jSimpleMarker() {
         log4jLogger.info(LOG4J_FLOW_MARKER, "This is a test");
     }
 
     @Benchmark
+    public void log4jTooFine() {
+        log4jLogger.trace("This is not logged");
+    }
+
+    @Benchmark
     public void logbackParentMarker() {
         slf4jLogger.info(LOGBACK_ENTRY_MARKER, "This is a test");
     }
@@ -95,4 +97,9 @@ public class MarkerFilterBenchmark {
     public void logbackSimpleMarker() {
         slf4jLogger.info(LOGBACK_FLOW_MARKER, "This is a test");
     }
+
+    @Benchmark
+    public void logbackTooFine() {
+        slf4jLogger.trace("This is not logged");
+    }
 }


[2/2] logging-log4j2 git commit: LOG4J2-1179 MDCFilterBenchmark: changed scope to Benchmark, added state with Thread Scope to initialize ThreadContext map for all threads in the test

Posted by rp...@apache.org.
LOG4J2-1179 MDCFilterBenchmark: changed scope to Benchmark, added state with Thread Scope to initialize ThreadContext map for all threads in the test


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7c102f61
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7c102f61
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7c102f61

Branch: refs/heads/master
Commit: 7c102f610fe9b72ecd86b916c15866c64dcdbd07
Parents: 5dbd1b6
Author: rpopma <rp...@apache.org>
Authored: Sun May 15 20:51:34 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sun May 15 20:51:34 2016 +0900

----------------------------------------------------------------------
 .../log4j/perf/jmh/MDCFilterBenchmark.java      | 29 ++++++++++++++------
 1 file changed, 20 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7c102f61/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MDCFilterBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MDCFilterBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MDCFilterBenchmark.java
index ae264ce..9b5c5cf 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MDCFilterBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/MDCFilterBenchmark.java
@@ -38,22 +38,33 @@ import org.slf4j.MDC;
 // multiple threads (for example, 4 threads):
 // java -jar target/benchmarks.jar ".*MDCFilterBenchmark.*" -f 1 -i 5 -wi 5 -t 4 -si true -bm sample -tu ns
 
-@State(Scope.Thread)
+@State(Scope.Benchmark)
 public class MDCFilterBenchmark {
+    // Loggers are Benchmark scope, just like in a real application:
+    // different threads may use the same logger instance, which may have some lock contention.
     Logger log4jLogger;
     org.slf4j.Logger slf4jLogger;
-    Integer j;
+
+    @State(Scope.Thread)
+    public static class ThreadContextState {
+        // Thread scope: initialize MDC/ThreadContext here to ensure each thread has some value set
+        public ThreadContextState() {
+            ThreadContext.put("user", "Apache");
+            MDC.put("user", "Apache");
+        }
+
+        public String message() {
+            return "This is a test";
+        }
+    }
 
     @Setup
     public void setUp() {
         System.setProperty("log4j.configurationFile", "log4j2-threadContextFilter-perf.xml");
         System.setProperty("logback.configurationFile", "logback-mdcFilter-perf.xml");
-        ThreadContext.put("user", "Apache");
-        MDC.put("user", "Apache");
 
         log4jLogger = LogManager.getLogger(MDCFilterBenchmark.class);
         slf4jLogger = LoggerFactory.getLogger(MDCFilterBenchmark.class);
-        j = Integer.valueOf(2);
     }
 
     @TearDown
@@ -68,13 +79,13 @@ public class MDCFilterBenchmark {
     }
 
     @Benchmark
-    public void log4jThreadContextFilter() {
-        log4jLogger.info("This is a test");
+    public void log4jThreadContextFilter(final ThreadContextState state) {
+        log4jLogger.info(state.message());
     }
 
     @Benchmark
-    public void slf4jMDCFilter() {
-        slf4jLogger.info("This is a test");
+    public void slf4jMDCFilter(final ThreadContextState state) {
+        slf4jLogger.info(state.message());
     }
 
 }