LOG4J2-1029 Performance improvement when gathering location information

- Use new Throwable().getStackTrace() instead of
Thread.currentThread().getStackTrace()


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

Branch: refs/heads/LOG4J2-435-delete-on-rollover
Commit: 91f8d463444daa4824ca84a94c225ceef54a02aa
Parents: 14f0d80
Author: rpopma <[email protected]>
Authored: Wed Nov 11 22:48:42 2015 +0900
Committer: Ralph Goers <[email protected]>
Committed: Fri Nov 20 17:39:22 2015 -0700

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java    | 2 +-
 src/changes/changes.xml                                           | 3 +++
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/91f8d463/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
index d74d6e2..a6c2087 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
@@ -542,7 +542,7 @@ public Log4jLogEvent(final String loggerName, final Marker 
marker, final String
         if (fqcnOfLogger == null) {
             return null;
         }
-        final StackTraceElement[] stackTrace = 
Thread.currentThread().getStackTrace();
+        final StackTraceElement[] stackTrace = new Throwable().getStackTrace();
         StackTraceElement last = null;
         for (int i = stackTrace.length - 1; i > 0; i--) {
             final String className = stackTrace[i].getClassName();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/91f8d463/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9dd732f..8fafc18 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -48,6 +48,9 @@
       <action issue="LOG4J2-1187" dev="ggregory" type="add">
         Support use case for java.sql.DriverManager.setLogStream(PrintStream).
       </action>
+      <action issue="LOG4J2-1029" dev="rpopma" type="fix" due-to="Stefan 
Leonhartsberger">
+        Performance improvement when gathering location information.
+      </action>
       <action issue="LOG4J2-1172" dev="rpopma" type="fix">
         Fixed ThreadLocal leak [AsyncLogger$Info] on Tomcat when using 
AsyncLoggerContextSelector.
       </action>

Reply via email to