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:35 UTC
[1/5] logging-log4j2 git commit: Add suffix support for
ThrowablePatternConverter
Repository: logging-log4j2
Updated Branches:
refs/heads/master a11150e51 -> c93c0270e
Add suffix support for ThrowablePatternConverter
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/1cf55b00
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/1cf55b00
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/1cf55b00
Branch: refs/heads/master
Commit: 1cf55b007dc7208594d44f72c99f67e0023b48bb
Parents: 56d05aa
Author: xnslong <xn...@outlook.com>
Authored: Fri Mar 10 00:27:07 2017 +0800
Committer: xnslong <xn...@outlook.com>
Committed: Fri Mar 10 00:41:31 2017 +0800
----------------------------------------------------------------------
.../core/pattern/ThrowablePatternConverter.java | 9 +++--
.../pattern/ThrowablePatternConverterTest.java | 37 ++++++++++++++++++++
2 files changed, 43 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1cf55b00/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 91b6bab..b596361 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
@@ -111,7 +111,8 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
formatSubShortOption(t, buffer);
}
else if (t != null && options.anyLines()) {
- formatOption(t, buffer);
+ String suffix = getSuffix(event);
+ formatOption(t, suffix, buffer);
}
}
@@ -166,7 +167,7 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
}
}
- private void formatOption(final Throwable throwable, final StringBuilder buffer) {
+ private void formatOption(final Throwable throwable, final String suffix, final StringBuilder buffer) {
final StringWriter w = new StringWriter();
throwable.printStackTrace(new PrintWriter(w));
@@ -174,12 +175,14 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
if (len > 0 && !Character.isWhitespace(buffer.charAt(len - 1))) {
buffer.append(' ');
}
- if (!options.allLines() || !Strings.LINE_SEPARATOR.equals(options.getSeparator())) {
+ if (!options.allLines() || !Strings.LINE_SEPARATOR.equals(options.getSeparator()) || Strings.isNotBlank(suffix)) {
final StringBuilder sb = new StringBuilder();
final String[] array = w.toString().split(Strings.LINE_SEPARATOR);
final int limit = options.minLines(array.length) - 1;
for (int i = 0; i <= limit; ++i) {
sb.append(array[i]);
+ sb.append(' ');
+ sb.append(suffix);
if (i < limit) {
sb.append(options.getSeparator());
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1cf55b00/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 55aa895..f0903ad 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
@@ -23,6 +23,7 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.apache.logging.log4j.message.SimpleMessage;
+import org.apache.logging.log4j.util.Strings;
import org.junit.Test;
public class ThrowablePatternConverterTest {
@@ -37,6 +38,16 @@ public class ThrowablePatternConverterTest {
}
}
+ private boolean everyLineEndsWith(final String text, final String suffix) {
+ String[] lines = text.split(Strings.LINE_SEPARATOR);
+ for (String line: lines) {
+ if (!line.trim().endsWith(suffix)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
/**
* TODO: Needs better a better exception? NumberFormatException is NOT helpful.
*/
@@ -75,6 +86,32 @@ 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" };
[4/5] logging-log4j2 git commit: Merge commit 'refs/pull/63/head' of
https://github.com/apache/logging-log4j2
Posted by ma...@apache.org.
Merge commit 'refs/pull/63/head' of https://github.com/apache/logging-log4j2
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/40f60b73
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/40f60b73
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/40f60b73
Branch: refs/heads/master
Commit: 40f60b738e6f86e07bd48bab0e12b5913928a24c
Parents: a11150e d9c9dd9
Author: Matt Sicker <bo...@gmail.com>
Authored: Sun Mar 12 11:32:06 2017 -0500
Committer: Matt Sicker <bo...@gmail.com>
Committed: Sun Mar 12 11:32:06 2017 -0500
----------------------------------------------------------------------
.../core/pattern/ThrowablePatternConverter.java | 20 +++++--
.../pattern/ThrowablePatternConverterTest.java | 56 ++++++++++++++++++++
2 files changed, 71 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
[5/5] logging-log4j2 git commit: Add changelog entry for LOG4J2-1843
Posted by ma...@apache.org.
Add changelog entry for LOG4J2-1843
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c93c0270
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c93c0270
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c93c0270
Branch: refs/heads/master
Commit: c93c0270e2998f29c033d312192481386e1d4149
Parents: 40f60b7
Author: Matt Sicker <bo...@gmail.com>
Authored: Sun Mar 12 11:33:35 2017 -0500
Committer: Matt Sicker <bo...@gmail.com>
Committed: Sun Mar 12 11:33:35 2017 -0500
----------------------------------------------------------------------
src/changes/changes.xml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c93c0270/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 87f98f4..33c4fa2 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -40,9 +40,12 @@
<action issue="LOG4J2-1845" dev="mikes" type="fix">
Handle when LogEvent.getLoggerName() returns null in KafkaAppender.
</action>
- <action issue="LOG4J2-1838" dev="mattsicker" type="add" due-to="Zilong Song">
+ <action issue="LOG4J2-1843" dev="mattsicker" type="add" due-to="Zilong Song">
Add support for appending common suffix to each line of throwable stack trace.
</action>
+ <action issue="LOG4J2-1838" dev="mattsicker" type="add" due-to="Zilong Song">
+ Add support for appending common suffix to each line of extended and root throwable stack trace.
+ </action>
<action issue="LOG4J2-1827" dev="rgoers" type="update">
Move integration tests to their own module to speed up build.
</action>
[2/5] logging-log4j2 git commit: Append suffix when it is short
Posted by ma...@apache.org.
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"));
+ }
+
}
[3/5] logging-log4j2 git commit: When suffix is blank,
it won't be appended
Posted by ma...@apache.org.
When suffix is blank, it won't be appended
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/d9c9dd9a
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/d9c9dd9a
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/d9c9dd9a
Branch: refs/heads/master
Commit: d9c9dd9aa8c0eb3ef422fb7f942f804b21d8dbb7
Parents: 54b6c88
Author: xnslong <xn...@outlook.com>
Authored: Fri Mar 10 01:02:44 2017 +0800
Committer: xnslong <xn...@outlook.com>
Committed: Fri Mar 10 01:02:44 2017 +0800
----------------------------------------------------------------------
.../logging/log4j/core/pattern/ThrowablePatternConverter.java | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d9c9dd9a/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 bcd631a..da20713 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
@@ -183,10 +183,13 @@ public class ThrowablePatternConverter extends LogEventPatternConverter {
final StringBuilder sb = new StringBuilder();
final String[] array = w.toString().split(Strings.LINE_SEPARATOR);
final int limit = options.minLines(array.length) - 1;
+ final boolean suffixNotBlank = Strings.isNotBlank(suffix);
for (int i = 0; i <= limit; ++i) {
sb.append(array[i]);
- sb.append(' ');
- sb.append(suffix);
+ if (suffixNotBlank) {
+ sb.append(' ');
+ sb.append(suffix);
+ }
if (i < limit) {
sb.append(options.getSeparator());
}