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>
