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 2020/07/11 18:59:33 UTC
[logging-log4j2] branch master updated: #335 Add PatternResolver to
the manual.
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 1c2c57e #335 Add PatternResolver to the manual.
1c2c57e is described below
commit 1c2c57e42b3a242b95b355e2b38b732fd167f875
Author: Volkan Yazıcı <vo...@gmail.com>
AuthorDate: Sat Jul 11 20:59:39 2020 +0200
#335 Add PatternResolver to the manual.
---
.../json/template/resolver/PatternResolver.java | 17 ++++++++++++---
src/site/asciidoc/manual/json-template-layout.adoc | 25 ++++++++++++++++++++++
2 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/log4j-layout-json-template/src/main/java/org/apache/logging/log4j/layout/json/template/resolver/PatternResolver.java b/log4j-layout-json-template/src/main/java/org/apache/logging/log4j/layout/json/template/resolver/PatternResolver.java
index 727a8e8..d5029e9 100644
--- a/log4j-layout-json-template/src/main/java/org/apache/logging/log4j/layout/json/template/resolver/PatternResolver.java
+++ b/log4j-layout-json-template/src/main/java/org/apache/logging/log4j/layout/json/template/resolver/PatternResolver.java
@@ -22,19 +22,26 @@ import org.apache.logging.log4j.layout.json.template.util.JsonWriter;
import org.apache.logging.log4j.util.BiConsumer;
import org.apache.logging.log4j.util.Strings;
+import java.util.Optional;
+
/**
* Resolver delegating to {@link PatternLayout}.
*
* <h3>Configuration</h3>
*
* <pre>
- * config = pattern
- * pattern = "pattern" -> string
+ * config = pattern , [ stackTraceEnabled ]
+ * pattern = "pattern" -> string
+ * stackTraceEnabled = "stackTraceEnabled" -> boolean
* </pre>
*
+ * The default value of <tt>stackTraceEnabled</tt> is inherited from the parent
+ * {@link org.apache.logging.log4j.layout.json.template.JsonTemplateLayout}.
+ *
* <h3>Examples</h3>
*
- * Inject string produced by <tt>%p %c{1.} [%t] %X{userId} %X %m%ex</tt> pattern:
+ * Resolve the string produced by <tt>%p %c{1.} [%t] %X{userId} %X %m%ex</tt>
+ * pattern:
*
* <pre>
* {
@@ -54,11 +61,15 @@ final class PatternResolver implements EventResolver {
if (Strings.isBlank(pattern)) {
throw new IllegalArgumentException("blank pattern: " + config);
}
+ final boolean stackTraceEnabled = Optional
+ .ofNullable(config.getBoolean("stackTraceEnabled"))
+ .orElse(context.isStackTraceEnabled());
final PatternLayout patternLayout = PatternLayout
.newBuilder()
.setConfiguration(context.getConfiguration())
.setCharset(context.getCharset())
.setPattern(pattern)
+ .setAlwaysWriteExceptions(stackTraceEnabled)
.build();
this.emitter = (final StringBuilder stringBuilder, final LogEvent logEvent) ->
patternLayout.serialize(logEvent, stringBuilder);
diff --git a/src/site/asciidoc/manual/json-template-layout.adoc b/src/site/asciidoc/manual/json-template-layout.adoc
index dfef200..ff2904d 100644
--- a/src/site/asciidoc/manual/json-template-layout.adoc
+++ b/src/site/asciidoc/manual/json-template-layout.adoc
@@ -828,6 +828,31 @@ Resolve all NDC values matching with the `pattern` regex:
}
----
+| pattern
+a|
+[source]
+----
+config = pattern , [ stackTraceEnabled ]
+pattern = "pattern" -> string
+stackTraceEnabled = "stackTraceEnabled" -> boolean
+----
+a|
+Resolver delegating to link:layouts.html#PatternLayout[`PatternLayout`].
+
+The default value of `stackTraceEnabled` is inherited from the parent
+`JsonTemplateLayout`.
+| none
+a|
+Resolve the string produced by `%p %c{1.} [%t] %X{userId} %X %m%ex` pattern:
+
+[source,json]
+----
+{
+ "$resolver": "pattern",
+ "pattern": "%p %c{1.} [%t] %X{userId} %X %m%ex"
+}
+----
+
| source
a|
[source]