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ı <volkan.yaz...@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]