Repository: logging-log4j2 Updated Branches: refs/heads/master 1f30fec6d -> 6532cd7b7
[LOG4J2-1255] Logger.entry and Logger.exit should support Messages. Fix NPEs. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/cd881cef Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/cd881cef Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/cd881cef Branch: refs/heads/master Commit: cd881cef0f658857a8d5004390cdb1a8bdac4a31 Parents: 85661de Author: ggregory <ggreg...@apache.org> Authored: Thu Feb 11 22:00:36 2016 -0800 Committer: ggregory <ggreg...@apache.org> Committed: Thu Feb 11 22:00:36 2016 -0800 ---------------------------------------------------------------------- .../apache/logging/log4j/spi/AbstractLogger.java | 18 ++++++++++-------- .../java/org/apache/logging/log4j/LoggerTest.java | 13 +++++++++++-- 2 files changed, 21 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cd881cef/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 e7af6e9..df7a4b9 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 @@ -304,7 +304,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { */ protected void enter(final String fqcn, final String format, final Supplier<?>... paramSuppliers) { if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { - logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(format, paramSuppliers.length, paramSuppliers), null); + logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(format, paramSuppliers), null); } } @@ -317,7 +317,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { */ protected void enter(final String fqcn, final String format, final Object... params) { if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { - logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(format, params.length, params), null); + logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(format, params), null); } } @@ -352,14 +352,15 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { protected void entry(final String fqcn, final Object... params) { if (isEnabled(Level.TRACE, ENTRY_MARKER, (Object) null, null)) { if (params == null) { - logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, 0, null), null); + logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, (Supplier<?>[]) null), null); } else { - logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, params.length, params), null); + logMessage(fqcn, Level.TRACE, ENTRY_MARKER, entryMsg(null, params), null); } } } - protected Message entryMsg(final String format, final int count, final Object... params) { + protected Message entryMsg(final String format, final Object... params) { + final int count = params == null ? 0 : params.length; if (count == 0) { if (Strings.isEmpty(format)) { return messageFactory.newMessage("entry"); @@ -372,7 +373,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { return messageFactory.newMessage(sb.toString(), params); } sb.append(" params("); - for (int i = 0; i < params.length; i++) { + for (int i = 0; i < count; i++) { Object parm = params[i]; sb.append(parm != null ? parm.toString() : "null"); if (i + 1 < params.length) { @@ -383,12 +384,13 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable { return messageFactory.newMessage(sb.toString()); } - protected Message entryMsg(final String format, final int count, final Supplier<?>... paramSuppliers) { + protected Message entryMsg(final String format, final Supplier<?>... paramSuppliers) { + final int count = paramSuppliers == null ? 0 : paramSuppliers.length; Object[] params = new Object[count]; for (int i = 0; i < count; i++) { params[i] = paramSuppliers[i].get(); } - return entryMsg(format, count, params); + return entryMsg(format, params); } @Override http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cd881cef/log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java index e60ed3a..8e4d915 100644 --- a/log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java +++ b/log4j-api/src/test/java/org/apache/logging/log4j/LoggerTest.java @@ -55,8 +55,8 @@ public class LoggerTest { logger.entry(); logger.exit(); assertEquals(2, results.size()); - assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW ] TRACE entry")); - assertThat("incorrect Exit", results.get(1), startsWith("EXIT[ FLOW ] TRACE exit")); + assertThat("Incorrect Entry", results.get(0), equalTo("ENTRY[ FLOW ] TRACE entry")); + assertThat("incorrect Exit", results.get(1), equalTo("EXIT[ FLOW ] TRACE exit")); } @@ -93,6 +93,15 @@ public class LoggerTest { } @Test + public void flowTracing() { + logger.traceEntry(); + logger.traceExit(); + assertEquals(2, results.size()); + assertThat("Incorrect Entry", results.get(0), startsWith("ENTRY[ FLOW ] TRACE entry")); + assertThat("Incorrect Exit", results.get(1), startsWith("EXIT[ FLOW ] TRACE exit")); + } + + @Test public void catching() { try { throw new NullPointerException();