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/08/23 13:37:19 UTC

[1/5] logging-log4j2 git commit: LOG4J2-1349 fixed imports

Repository: logging-log4j2
Updated Branches:
  refs/heads/LOG4J2-1349-gcfree-threadcontext 167b281e8 -> b5e9a1767


LOG4J2-1349 fixed imports


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 049e67905d2881c5fb4c8134e2f186c34ed98c21
Parents: 167b281
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 20:54:04 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 20:54:04 2016 +0900

----------------------------------------------------------------------
 .../apache/logging/log4j/core/filter/DynamicThresholdFilter.java | 4 ++--
 .../org/apache/logging/log4j/core/lookup/ContextMapLookup.java   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/049e6790/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
index 3c6cdaa..8e5d9f5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
@@ -23,7 +23,6 @@ import java.util.Objects;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.core.ContextData;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.Logger;
@@ -35,9 +34,10 @@ import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.impl.ContextDataFactory;
 import org.apache.logging.log4j.core.impl.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
-import org.apache.logging.log4j.core.impl.MutableContextData;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.spi.ContextData;
+import org.apache.logging.log4j.spi.MutableContextData;
 
 /**
  * Compare against a log level that is associated with a context value. By default the context is the

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/049e6790/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
index 57818bc..eec5ad3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
@@ -17,13 +17,13 @@
 package org.apache.logging.log4j.core.lookup;
 
 import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.core.ContextData;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.impl.ContextDataFactory;
 import org.apache.logging.log4j.core.impl.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
-import org.apache.logging.log4j.core.impl.MutableContextData;
+import org.apache.logging.log4j.spi.ContextData;
+import org.apache.logging.log4j.spi.MutableContextData;
 
 /**
  * Looks up keys from the context. By default this is the {@link ThreadContext}, but users may


[4/5] logging-log4j2 git commit: LOG4J2-1349 added benchmarks for legacy inject (Log4jLogEvent::createMap)

Posted by rp...@apache.org.
LOG4J2-1349 added benchmarks for legacy inject (Log4jLogEvent::createMap)


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 6b433c5e6a8452b1ed77edab5d89fb035ce932c1
Parents: e6a777a
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 21:04:25 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 21:04:25 2016 +0900

----------------------------------------------------------------------
 .../apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/6b433c5e/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
index b75e291..5157a24 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
@@ -166,12 +166,12 @@ public class ThreadContextBenchmark {
     }
 
     @Benchmark
-    Map<String, String> legacyInjectWithoutProperties() {
+    public Map<String, String> legacyInjectWithoutProperties() {
         return createMap(null);
     }
 
     @Benchmark
-    Map<String, String> legacyInjectWithProperties() {
+    public Map<String, String> legacyInjectWithProperties() {
         return createMap(propertyList);
     }
 


[2/5] logging-log4j2 git commit: LOG4J2-1349 fixed ArrayContextDataVsHashMapBenchmark for get and put

Posted by rp...@apache.org.
LOG4J2-1349 fixed ArrayContextDataVsHashMapBenchmark for get and put


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 44784df948213a72ba140d89d1249b3af6c2ed3c
Parents: 049e679
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 21:01:51 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 21:01:51 2016 +0900

----------------------------------------------------------------------
 .../jmh/ArrayContextDataVsHashMapBenchmark.java | 53 ++++----------------
 1 file changed, 10 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/44784df9/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
index ada45b4..eb354a5 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
@@ -205,68 +205,35 @@ public class ArrayContextDataVsHashMapBenchmark {
     }
 
     @Benchmark
-    public int getValueArrayContextData() {
-        String[] theKeys = keys;
-        int c = count;
-        int result = 0;
-        for (int i = 0; i < c; i++) {
-            Object val = populatedContextData.getValue(theKeys[i]);
-            result += val.hashCode();// + theKeys[i].hashCode();
-        }
-        return result;
+    public Object getValueArrayContextData() {
+        return populatedContextData.getValue(keys[count - 1]);
     }
 
     @Benchmark
-    public int getValueHashContextData() {
-        String[] theKeys = keys;
-        int c = count;
-        int result = 0;
-        for (int i = 0; i < c; i++) {
-            Object val = populatedHashContextData.getValue(theKeys[i]);
-            result += val.hashCode();// + theKeys[i].hashCode();
-        }
-        return result;
+    public Object getValueHashContextData() {
+        return populatedHashContextData.getValue(keys[count - 1]);
     }
 
     @Benchmark
-    public int getValueMap() {
-        String[] theKeys = keys;
-        int c = count;
-        int result = 0;
-        for (int i = 0; i < c; i++) {
-            Object val = populatedMap.get(theKeys[i]);
-            result += val.hashCode();// + theKeys[i].hashCode();
-        }
-        return result;
+    public Object getValueMap() {
+        return populatedMap.get(keys[count - 1]);
     }
 
     @Benchmark
     public int putArrayContextData() {
-        String[] theKeys = keys;
-        int c = count;
-        for (int i = 0; i < c; i++) {
-            contextData.putValue(theKeys[i], value);
-        }
-        return contextData.size();
+        populatedContextData.put("someKey", "someValue");
+        return populatedContextData.size();
     }
 
     @Benchmark
     public int putHashContextData() {
-        String[] theKeys = keys;
-        int c = count;
-        for (int i = 0; i < c; i++) {
-            hashContextData.putValue(theKeys[i], value);
-        }
+        hashContextData.put("someKey", "someValue");
         return hashContextData.size();
     }
 
     @Benchmark
     public int putMap() {
-        String[] theKeys = keys;
-        int c = count;
-        for (int i = 0; i < c; i++) {
-            map.put(theKeys[i], value);
-        }
+        map.put("someKey", "someValue");
         return map.size();
     }
 }
\ No newline at end of file


[5/5] logging-log4j2 git commit: LOG4J2-1349 added ThreadContext::get benchmark

Posted by rp...@apache.org.
LOG4J2-1349 added ThreadContext::get benchmark


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: b5e9a176726825c8208b2455d4b4a18880a0b365
Parents: 6b433c5
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 22:37:13 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 22:37:13 2016 +0900

----------------------------------------------------------------------
 .../logging/log4j/perf/jmh/ThreadContextBenchmark.java      | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b5e9a176/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
index 5157a24..5b760e0 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
@@ -88,8 +88,8 @@ public class ThreadContextBenchmark {
         IMPLEMENTATIONS.put(NO_GC_ARRAY_MAP, GarbageFreeSortedArrayThreadContextMap.class);
     }
 
-    //@Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
-    @Param({ "Default", }) // for legecyInject benchmarks
+    @Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
+    //@Param({ "Default", }) // for legecyInject benchmarks
     public String threadContextMapAlias;
 
     @Param({"5", "50", "500"})
@@ -154,6 +154,11 @@ public class ThreadContextBenchmark {
     }
 
     @Benchmark
+    public Object get() {
+        return ThreadContext.get(keys[count - 1]);
+    }
+
+    @Benchmark
     public MutableContextData injectWithoutProperties() {
         reusableContextData.clear();
         return injector.injectContextData(null, reusableContextData);


[3/5] logging-log4j2 git commit: LOG4J2-1349 added benchmarks for legacy inject (Log4jLogEvent::createMap)

Posted by rp...@apache.org.
LOG4J2-1349 added benchmarks for legacy inject (Log4jLogEvent::createMap)


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: e6a777a190b2f10b107d83f0ed7247f6eea7d04e
Parents: 44784df
Author: rpopma <rp...@apache.org>
Authored: Tue Aug 23 21:02:30 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Tue Aug 23 21:02:30 2016 +0900

----------------------------------------------------------------------
 .../log4j/perf/jmh/ThreadContextBenchmark.java  | 30 +++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e6a777a1/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
index a8d15b8..b75e291 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
@@ -18,6 +18,7 @@
 package org.apache.logging.log4j.perf.jmh;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -87,7 +88,8 @@ public class ThreadContextBenchmark {
         IMPLEMENTATIONS.put(NO_GC_ARRAY_MAP, GarbageFreeSortedArrayThreadContextMap.class);
     }
 
-    @Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
+    //@Param({ "Default", "CopyOpenHash", "CopySortedArray", "NoGcOpenHash", "NoGcSortedArray"})
+    @Param({ "Default", }) // for legecyInject benchmarks
     public String threadContextMapAlias;
 
     @Param({"5", "50", "500"})
@@ -162,4 +164,30 @@ public class ThreadContextBenchmark {
         reusableContextData.clear();
         return injector.injectContextData(propertyList, reusableContextData);
     }
+
+    @Benchmark
+    Map<String, String> legacyInjectWithoutProperties() {
+        return createMap(null);
+    }
+
+    @Benchmark
+    Map<String, String> legacyInjectWithProperties() {
+        return createMap(propertyList);
+    }
+
+    // from Log4jLogEvent::createMap
+    static Map<String, String> createMap(final List<Property> properties) {
+        final Map<String, String> contextMap = ThreadContext.getImmutableContext();
+        if (properties == null || properties.isEmpty()) {
+            return contextMap; // may be ThreadContext.EMPTY_MAP but not null
+        }
+        final Map<String, String> map = new HashMap<>(contextMap);
+
+        for (final Property prop : properties) {
+            if (!map.containsKey(prop.getName())) {
+                map.put(prop.getName(), prop.getValue());
+            }
+        }
+        return Collections.unmodifiableMap(map);
+    }
 }
\ No newline at end of file