You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2017/03/12 16:33:36 UTC

[2/5] logging-log4j2 git commit: Append suffix when it is short

Append suffix when it is short


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

Branch: refs/heads/master
Commit: 54b6c88de8ef36fa23c037e389ed958c081104fe
Parents: 1cf55b0
Author: xnslong <xn...@outlook.com>
Authored: Fri Mar 10 00:53:17 2017 +0800
Committer: xnslong <xn...@outlook.com>
Committed: Fri Mar 10 00:58:30 2017 +0800

----------------------------------------------------------------------
 .../core/pattern/ThrowablePatternConverter.java | 12 ++--
 .../pattern/ThrowablePatternConverterTest.java  | 71 +++++++++++++-------
 2 files changed, 53 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/54b6c88d/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java
index b596361..bcd631a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.java
@@ -108,11 +108,10 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
         final Throwable t = event.getThrown();
 
         if (isSubShortOption()) {
-            formatSubShortOption(t, buffer);
+            formatSubShortOption(t, getSuffix(event), buffer);
         }
         else if (t != null && options.anyLines()) {
-            String suffix = getSuffix(event);
-            formatOption(t, suffix, buffer);
+            formatOption(t, getSuffix(event), buffer);
         }
     }
 
@@ -125,7 +124,7 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
                 ThrowableFormatOptions.CLASS_NAME.equalsIgnoreCase(rawOption);
     }
 
-    private void formatSubShortOption(final Throwable t, final StringBuilder buffer) {
+    private void formatSubShortOption(final Throwable t, final String suffix, final StringBuilder buffer) {
         StackTraceElement[] trace;
         StackTraceElement throwingMethod = null;
         int len;
@@ -164,6 +163,11 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
                 buffer.append(' ');
             }
             buffer.append(toAppend);
+
+            if (Strings.isNotBlank(suffix)) {
+                buffer.append(' ');
+                buffer.append(suffix);
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/54b6c88d/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverterTest.java
index f0903ad..2704d86 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/ThrowablePatternConverterTest.java
@@ -86,32 +86,6 @@ public class ThrowablePatternConverterTest {
     }
 
     @Test
-    public void testFullWithSuffix() {
-        final String[] options = { "full", "suffix(test suffix)" };
-        final ThrowablePatternConverter converter = ThrowablePatternConverter.newInstance(null, options);
-        Throwable parent;
-        try {
-            try {
-                throw new NullPointerException("null pointer");
-            } catch (final NullPointerException e) {
-                throw new IllegalArgumentException("IllegalArgument", e);
-            }
-        } catch (final IllegalArgumentException e) {
-            parent = e;
-        }
-        final LogEvent event = Log4jLogEvent.newBuilder() //
-                .setLoggerName("testLogger") //
-                .setLoggerFqcn(this.getClass().getName()) //
-                .setLevel(Level.DEBUG) //
-                .setMessage(new SimpleMessage("test exception")) //
-                .setThrown(parent).build();
-        final StringBuilder sb = new StringBuilder();
-        converter.format(event, sb);
-        final String result = sb.toString();
-        assertTrue("Each line of full stack trace should end with the specified suffix", everyLineEndsWith(result, "test suffix"));
-    }
-
-    @Test
     public void testShortClassName() {
         final String packageName = "org.apache.logging.log4j.core.pattern.";
         final String[] options = { "short.className" };
@@ -222,4 +196,49 @@ public class ThrowablePatternConverterTest {
         assertEquals("The method names should be same", "testShortMethodName", result);
     }
 
+    @Test
+    public void testFullWithSuffix() {
+        final String[] options = { "full", "suffix(test suffix)" };
+        final ThrowablePatternConverter converter = ThrowablePatternConverter.newInstance(null, options);
+        Throwable parent;
+        try {
+            try {
+                throw new NullPointerException("null pointer");
+            } catch (final NullPointerException e) {
+                throw new IllegalArgumentException("IllegalArgument", e);
+            }
+        } catch (final IllegalArgumentException e) {
+            parent = e;
+        }
+        final LogEvent event = Log4jLogEvent.newBuilder() //
+                .setLoggerName("testLogger") //
+                .setLoggerFqcn(this.getClass().getName()) //
+                .setLevel(Level.DEBUG) //
+                .setMessage(new SimpleMessage("test exception")) //
+                .setThrown(parent).build();
+        final StringBuilder sb = new StringBuilder();
+        converter.format(event, sb);
+        final String result = sb.toString();
+        assertTrue("Each line of full stack trace should end with the specified suffix", everyLineEndsWith(result, "test suffix"));
+    }
+
+    @Test
+    public void testShortOptionWithSuffix() {
+        final String packageName = "org.apache.logging.log4j.core.pattern.";
+        final String[] options = { "short.className", "suffix(test suffix)" };
+        final ThrowablePatternConverter converter = ThrowablePatternConverter.newInstance(null, options);
+        final Throwable cause = new NullPointerException("null pointer");
+        final Throwable parent = new IllegalArgumentException("IllegalArgument", cause);
+        final LogEvent event = Log4jLogEvent.newBuilder() //
+                .setLoggerName("testLogger") //
+                .setLoggerFqcn(this.getClass().getName()) //
+                .setLevel(Level.DEBUG) //
+                .setMessage(new SimpleMessage("test exception")) //
+                .setThrown(parent).build();
+        final StringBuilder sb = new StringBuilder();
+        converter.format(event, sb);
+        final String result = sb.toString();
+        assertTrue("Each line should end with suffix", everyLineEndsWith(result, "test suffix"));
+    }
+
 }