No need to call isTraceEnabled() if the message is null. This means the traceEnter() call returned null because isTraceEnabled() returned null.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/d5f7c94f Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/d5f7c94f Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/d5f7c94f Branch: refs/heads/gelf-layout-gc-free Commit: d5f7c94f89a5492092764e154adabe4aa12e6a29 Parents: b334215 Author: ggregory <ggreg...@apache.org> Authored: Mon Mar 14 18:37:55 2016 -0700 Committer: ggregory <ggreg...@apache.org> Committed: Mon Mar 14 18:37:55 2016 -0700 ---------------------------------------------------------------------- .../java/org/apache/logging/log4j/spi/AbstractLogger.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d5f7c94f/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java index b190535..244b8e7 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java @@ -1431,14 +1431,16 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { @Override public void traceExit(final EntryMessage message) { - if (isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { + // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled(). + if (message != null && isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { logMessage(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(message), null); } } @Override public <R> R traceExit(final EntryMessage message, final R result) { - if (isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { + // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled(). + if (message != null && isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { logMessage(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(result, message), null); } return result; @@ -1446,7 +1448,8 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { @Override public <R> R traceExit(final Message message, final R result) { - if (isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { + // If the message is null, traceEnter returned null because flow logging was disabled, we can optimize out calling isEnabled(). + if (message != null && isEnabled(Level.TRACE, EXIT_MARKER, message, null)) { logMessage(FQCN, Level.TRACE, EXIT_MARKER, flowMessageFactory.newExitMessage(result, message), null); } return result;