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]