You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2021/04/14 09:13:38 UTC
[logging-log4j2] branch master updated: Ensure
EncodingPatternConverter#handlesThrowable is implemented (#473)
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/master by this push:
new 529f7aa Ensure EncodingPatternConverter#handlesThrowable is implemented (#473)
529f7aa is described below
commit 529f7aa9058931d2d6d87a6767d75fa9304c9525
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Wed Apr 14 11:13:26 2021 +0200
Ensure EncodingPatternConverter#handlesThrowable is implemented (#473)
---
.../logging/log4j/core/pattern/EncodingPatternConverter.java | 9 +++++++++
.../log4j/core/pattern/EncodingPatternConverterTest.java | 12 ++++++++++++
2 files changed, 21 insertions(+)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverter.java
index c1b83c3..eb5f643 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverter.java
@@ -17,6 +17,8 @@
package org.apache.logging.log4j.core.pattern;
import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Stream;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.config.Configuration;
@@ -51,6 +53,13 @@ public final class EncodingPatternConverter extends LogEventPatternConverter {
this.escapeFormat = escapeFormat;
}
+ @Override
+ public boolean handlesThrowable() {
+ return formatters != null && formatters.stream()
+ .map(PatternFormatter::getConverter)
+ .anyMatch(LogEventPatternConverter::handlesThrowable);
+ }
+
/**
* Creates an EncodingPatternConverter using a pattern string and an optional escape format.
*
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverterTest.java
index 851c5ba..e996241 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/pattern/EncodingPatternConverterTest.java
@@ -19,6 +19,8 @@ package org.apache.logging.log4j.core.pattern;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.DefaultConfiguration;
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.apache.logging.log4j.message.SimpleMessage;
import org.junit.jupiter.api.Test;
@@ -103,4 +105,14 @@ public class EncodingPatternConverterTest {
sb.toString());
}
+ @Test
+ public void testHandlesThrowable() {
+ final Configuration configuration = new DefaultConfiguration();
+ assertFalse(EncodingPatternConverter.newInstance(configuration, new String[]{"%msg", "XML"})
+ .handlesThrowable());
+ assertTrue(EncodingPatternConverter.newInstance(configuration, new String[]{"%xThrowable{full}", "JSON"})
+ .handlesThrowable());
+ assertTrue(EncodingPatternConverter.newInstance(configuration, new String[]{"%ex", "XML"})
+ .handlesThrowable());
+ }
}