Improve documentation of XML/JSON/YAML layouts
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/4c43152b Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/4c43152b Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/4c43152b Branch: refs/heads/master Commit: 4c43152bdcbebe037e0792a4e5687c95445a5794 Parents: 28d5bb1 Author: Mikael Ståldal <mikael.stal...@magine.com> Authored: Tue Apr 25 14:43:35 2017 +0200 Committer: Mikael Ståldal <mikael.stal...@magine.com> Committed: Tue Apr 25 14:43:35 2017 +0200 ---------------------------------------------------------------------- .../logging/log4j/core/layout/JsonLayout.java | 739 +------------------ .../logging/log4j/core/layout/XmlLayout.java | 150 +--- .../logging/log4j/core/layout/YamlLayout.java | 651 ---------------- src/site/xdoc/manual/layouts.xml.vm | 283 ++++--- 4 files changed, 133 insertions(+), 1690 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c43152b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java index 5087c32..c630836 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/JsonLayout.java @@ -46,743 +46,6 @@ import org.apache.logging.log4j.core.layout.SyslogLayout.Builder; * well-formed JSON document. * </p> * <p> - * A well-formed JSON event follows this pattern: - * </p> - * - * <pre> - * { - "timeMillis": 1, - "thread": "MyThreadName", - "level": "DEBUG", - "loggerName": "a.B", - "marker": { - "name": "Marker1", - "parents": [{ - "name": "ParentMarker1", - "parents": [{ - "name": "GrandMotherMarker" - }, { - "name": "GrandFatherMarker" - }] - }, { - "name": "GrandFatherMarker" - }] - }, - "message": "Msg", - "thrown": { - "cause": { - "commonElementCount": 27, - "extendedStackTrace": [{ - "class": "org.apache.logging.log4j.core.layout.LogEventFixtures", - "method": "createLogEvent", - "file": "LogEventFixtures.java", - "line": 53, - "exact": false, - "location": "test-classes/", - "version": "?" - }], - "localizedMessage": "testNPEx", - "message": "testNPEx", - "name": "java.lang.NullPointerException" - }, - "commonElementCount": 0, - "extendedStackTrace": [{ - "class": "org.apache.logging.log4j.core.layout.LogEventFixtures", - "method": "createLogEvent", - "file": "LogEventFixtures.java", - "line": 56, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "org.apache.logging.log4j.core.layout.JsonLayoutTest", - "method": "testAllFeatures", - "file": "JsonLayoutTest.java", - "line": 105, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "org.apache.logging.log4j.core.layout.JsonLayoutTest", - "method": "testLocationOnCompactOnMdcOn", - "file": "JsonLayoutTest.java", - "line": 268, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "sun.reflect.NativeMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "sun.reflect.NativeMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "sun.reflect.DelegatingMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "java.lang.reflect.Method", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "org.junit.runners.model.FrameworkMethod$1", - "method": "runReflectiveCall", - "file": "FrameworkMethod.java", - "line": 47, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.model.ReflectiveCallable", - "method": "run", - "file": "ReflectiveCallable.java", - "line": 12, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.model.FrameworkMethod", - "method": "invokeExplosively", - "file": "FrameworkMethod.java", - "line": 44, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.InvokeMethod", - "method": "evaluate", - "file": "InvokeMethod.java", - "line": 17, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "runLeaf", - "file": "ParentRunner.java", - "line": 271, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.BlockJUnit4ClassRunner", - "method": "runChild", - "file": "BlockJUnit4ClassRunner.java", - "line": 70, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.BlockJUnit4ClassRunner", - "method": "runChild", - "file": "BlockJUnit4ClassRunner.java", - "line": 50, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$3", - "method": "run", - "file": "ParentRunner.java", - "line": 238, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$1", - "method": "schedule", - "file": "ParentRunner.java", - "line": 63, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "runChildren", - "file": "ParentRunner.java", - "line": 236, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "access$000", - "file": "ParentRunner.java", - "line": 53, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$2", - "method": "evaluate", - "file": "ParentRunner.java", - "line": 229, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.RunBefores", - "method": "evaluate", - "file": "RunBefores.java", - "line": 26, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.RunAfters", - "method": "evaluate", - "file": "RunAfters.java", - "line": 27, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "run", - "file": "ParentRunner.java", - "line": 309, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference", - "method": "run", - "file": "JUnit4TestReference.java", - "line": 50, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.TestExecution", - "method": "run", - "file": "TestExecution.java", - "line": 38, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "runTests", - "file": "RemoteTestRunner.java", - "line": 467, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "runTests", - "file": "RemoteTestRunner.java", - "line": 683, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "run", - "file": "RemoteTestRunner.java", - "line": 390, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "main", - "file": "RemoteTestRunner.java", - "line": 197, - "exact": true, - "location": ".cp/", - "version": "?" - }], - "localizedMessage": "testIOEx", - "message": "testIOEx", - "name": "java.io.IOException", - "suppressed": [{ - "commonElementCount": 0, - "extendedStackTrace": [{ - "class": "org.apache.logging.log4j.core.layout.LogEventFixtures", - "method": "createLogEvent", - "file": "LogEventFixtures.java", - "line": 57, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "org.apache.logging.log4j.core.layout.JsonLayoutTest", - "method": "testAllFeatures", - "file": "JsonLayoutTest.java", - "line": 105, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "org.apache.logging.log4j.core.layout.JsonLayoutTest", - "method": "testLocationOnCompactOnMdcOn", - "file": "JsonLayoutTest.java", - "line": 268, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "sun.reflect.NativeMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "sun.reflect.NativeMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "sun.reflect.DelegatingMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "java.lang.reflect.Method", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "org.junit.runners.model.FrameworkMethod$1", - "method": "runReflectiveCall", - "file": "FrameworkMethod.java", - "line": 47, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.model.ReflectiveCallable", - "method": "run", - "file": "ReflectiveCallable.java", - "line": 12, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.model.FrameworkMethod", - "method": "invokeExplosively", - "file": "FrameworkMethod.java", - "line": 44, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.InvokeMethod", - "method": "evaluate", - "file": "InvokeMethod.java", - "line": 17, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "runLeaf", - "file": "ParentRunner.java", - "line": 271, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.BlockJUnit4ClassRunner", - "method": "runChild", - "file": "BlockJUnit4ClassRunner.java", - "line": 70, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.BlockJUnit4ClassRunner", - "method": "runChild", - "file": "BlockJUnit4ClassRunner.java", - "line": 50, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$3", - "method": "run", - "file": "ParentRunner.java", - "line": 238, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$1", - "method": "schedule", - "file": "ParentRunner.java", - "line": 63, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "runChildren", - "file": "ParentRunner.java", - "line": 236, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "access$000", - "file": "ParentRunner.java", - "line": 53, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$2", - "method": "evaluate", - "file": "ParentRunner.java", - "line": 229, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.RunBefores", - "method": "evaluate", - "file": "RunBefores.java", - "line": 26, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.RunAfters", - "method": "evaluate", - "file": "RunAfters.java", - "line": 27, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "run", - "file": "ParentRunner.java", - "line": 309, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference", - "method": "run", - "file": "JUnit4TestReference.java", - "line": 50, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.TestExecution", - "method": "run", - "file": "TestExecution.java", - "line": 38, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "runTests", - "file": "RemoteTestRunner.java", - "line": 467, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "runTests", - "file": "RemoteTestRunner.java", - "line": 683, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "run", - "file": "RemoteTestRunner.java", - "line": 390, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "main", - "file": "RemoteTestRunner.java", - "line": 197, - "exact": true, - "location": ".cp/", - "version": "?" - }], - "localizedMessage": "I am suppressed exception 1", - "message": "I am suppressed exception 1", - "name": "java.lang.IndexOutOfBoundsException" - }, { - "commonElementCount": 0, - "extendedStackTrace": [{ - "class": "org.apache.logging.log4j.core.layout.LogEventFixtures", - "method": "createLogEvent", - "file": "LogEventFixtures.java", - "line": 58, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "org.apache.logging.log4j.core.layout.JsonLayoutTest", - "method": "testAllFeatures", - "file": "JsonLayoutTest.java", - "line": 105, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "org.apache.logging.log4j.core.layout.JsonLayoutTest", - "method": "testLocationOnCompactOnMdcOn", - "file": "JsonLayoutTest.java", - "line": 268, - "exact": true, - "location": "test-classes/", - "version": "?" - }, { - "class": "sun.reflect.NativeMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "sun.reflect.NativeMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "sun.reflect.DelegatingMethodAccessorImpl", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "java.lang.reflect.Method", - "method": "invoke", - "line": -1, - "exact": false, - "location": "?", - "version": "1.7.0_55" - }, { - "class": "org.junit.runners.model.FrameworkMethod$1", - "method": "runReflectiveCall", - "file": "FrameworkMethod.java", - "line": 47, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.model.ReflectiveCallable", - "method": "run", - "file": "ReflectiveCallable.java", - "line": 12, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.model.FrameworkMethod", - "method": "invokeExplosively", - "file": "FrameworkMethod.java", - "line": 44, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.InvokeMethod", - "method": "evaluate", - "file": "InvokeMethod.java", - "line": 17, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "runLeaf", - "file": "ParentRunner.java", - "line": 271, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.BlockJUnit4ClassRunner", - "method": "runChild", - "file": "BlockJUnit4ClassRunner.java", - "line": 70, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.BlockJUnit4ClassRunner", - "method": "runChild", - "file": "BlockJUnit4ClassRunner.java", - "line": 50, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$3", - "method": "run", - "file": "ParentRunner.java", - "line": 238, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$1", - "method": "schedule", - "file": "ParentRunner.java", - "line": 63, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "runChildren", - "file": "ParentRunner.java", - "line": 236, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "access$000", - "file": "ParentRunner.java", - "line": 53, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner$2", - "method": "evaluate", - "file": "ParentRunner.java", - "line": 229, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.RunBefores", - "method": "evaluate", - "file": "RunBefores.java", - "line": 26, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.internal.runners.statements.RunAfters", - "method": "evaluate", - "file": "RunAfters.java", - "line": 27, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.junit.runners.ParentRunner", - "method": "run", - "file": "ParentRunner.java", - "line": 309, - "exact": true, - "location": "junit-4.11.jar", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference", - "method": "run", - "file": "JUnit4TestReference.java", - "line": 50, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.TestExecution", - "method": "run", - "file": "TestExecution.java", - "line": 38, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "runTests", - "file": "RemoteTestRunner.java", - "line": 467, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "runTests", - "file": "RemoteTestRunner.java", - "line": 683, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "run", - "file": "RemoteTestRunner.java", - "line": 390, - "exact": true, - "location": ".cp/", - "version": "?" - }, { - "class": "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner", - "method": "main", - "file": "RemoteTestRunner.java", - "line": 197, - "exact": true, - "location": ".cp/", - "version": "?" - }], - "localizedMessage": "I am suppressed exception 2", - "message": "I am suppressed exception 2", - "name": "java.lang.IndexOutOfBoundsException" - }] - }, - "loggerFQCN": "f.q.c.n", - "endOfBatch": false, - "contextMap": [{ - "key": "MDC.B", - "value": "B_Value" - }, { - "key": "MDC.A", - "value": "A_Value" - }], - "contextStack": ["stack_msg1", "stack_msg2"], - "source": { - "class": "org.apache.logging.log4j.core.layout.LogEventFixtures", - "method": "createLogEvent", - "file": "LogEventFixtures.java", - "line": 54 - } -} - * </pre> - * <p> * If {@code complete="false"}, the appender does not write the JSON open array character "[" at the start * of the document, "]" and the end, nor comma "," between records. * </p> @@ -791,7 +54,7 @@ import org.apache.logging.log4j.core.layout.SyslogLayout.Builder; * Appenders using this layout should have their {@code charset} set to {@code UTF-8} or {@code UTF-16}, otherwise * events containing non ASCII characters could result in corrupted log files. * </p> - * <h3>Pretty vs. compact XML</h3> + * <h3>Pretty vs. compact JSON</h3> * <p> * By default, the JSON layout is not compact (a.k.a. "pretty") with {@code compact="false"}, which means the * appender uses end-of-line characters and indents lines to format the text. If {@code compact="true"}, then no http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c43152b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java index 8c13b12..b3a8121 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/XmlLayout.java @@ -28,164 +28,30 @@ import org.apache.logging.log4j.core.config.plugins.PluginAttribute; import org.apache.logging.log4j.core.config.plugins.PluginFactory; import org.apache.logging.log4j.core.jackson.XmlConstants; -// Lines too long... -//CHECKSTYLE:OFF /** * Appends a series of {@code event} elements as defined in the <a href="log4j.dtd">log4j.dtd</a>. * * <h3>Complete well-formed XML vs. fragment XML</h3> * <p> - * If you configure {@code complete="true"}, the appender outputs a well-formed XML document where the default namespace is the log4j - * namespace {@value XmlConstants#XML_NAMESPACE}. By default, with {@code complete="false"}, you should include the output as an - * <em>external entity</em> in a separate file to form a well-formed XML document. + * If you configure {@code complete="true"}, the appender outputs a well-formed XML document where the default namespace + * is the log4j namespace {@value XmlConstants#XML_NAMESPACE}. By default, with {@code complete="false"}, you should + * include the output as an <em>external entity</em> in a separate file to form a well-formed XML document. * </p> * <p> - * A well-formed XML document follows this pattern: - * </p> - * <pre> -<Event xmlns="http://logging.apache.org/log4j/2.0/events" timeMillis="1" thread="MyThreadName" level="DEBUG" loggerName="a.B" loggerFQCN="f.q.c.n" endOfBatch="false"> - <Marker name="Marker1"> - <Parents> - <Parents name="ParentMarker1"> - <Parents> - <Parents name="GrandMotherMarker"/> - <Parents name="GrandFatherMarker"/> - </Parents> - </Parents> - <Parents name="GrandFatherMarker"/> - </Parents> - </Marker> - <Message>Msg</Message> - <ContextMap> - <item key="MDC.B" value="B_Value"/> - <item key="MDC.A" value="A_Value"/> - </ContextMap> - <ContextStack> - <ContextStack>stack_msg1</ContextStack> - <ContextStack>stack_msg2</ContextStack> - </ContextStack> - <Source class="org.apache.logging.log4j.core.layout.LogEventFixtures" method="createLogEvent" file="LogEventFixtures.java" line="54"/> - <Thrown commonElementCount="0" localizedMessage="testIOEx" message="testIOEx" name="java.io.IOException"> - <Cause commonElementCount="27" localizedMessage="testNPEx" message="testNPEx" name="java.lang.NullPointerException"> - <ExtendedStackTrace> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.LogEventFixtures" method="createLogEvent" file="LogEventFixtures.java" line="53" exact="false" location="test-classes/" version="?"/> - </ExtendedStackTrace> - </Cause> - <ExtendedStackTrace> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.LogEventFixtures" method="createLogEvent" file="LogEventFixtures.java" line="56" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.XmlLayoutTest" method="testAllFeatures" file="XmlLayoutTest.java" line="122" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.XmlLayoutTest" method="testLocationOnCompactOnMdcOn" file="XmlLayoutTest.java" line="270" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="sun.reflect.NativeMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="sun.reflect.NativeMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="sun.reflect.DelegatingMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="java.lang.reflect.Method" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="org.junit.runners.model.FrameworkMethod$1" method="runReflectiveCall" file="FrameworkMethod.java" line="47" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.model.ReflectiveCallable" method="run" file="ReflectiveCallable.java" line="12" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.model.FrameworkMethod" method="invokeExplosively" file="FrameworkMethod.java" line="44" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.InvokeMethod" method="evaluate" file="InvokeMethod.java" line="17" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="runLeaf" file="ParentRunner.java" line="271" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.BlockJUnit4ClassRunner" method="runChild" file="BlockJUnit4ClassRunner.java" line="70" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.BlockJUnit4ClassRunner" method="runChild" file="BlockJUnit4ClassRunner.java" line="50" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$3" method="run" file="ParentRunner.java" line="238" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$1" method="schedule" file="ParentRunner.java" line="63" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="runChildren" file="ParentRunner.java" line="236" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="access$000" file="ParentRunner.java" line="53" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$2" method="evaluate" file="ParentRunner.java" line="229" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.RunBefores" method="evaluate" file="RunBefores.java" line="26" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.RunAfters" method="evaluate" file="RunAfters.java" line="27" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="run" file="ParentRunner.java" line="309" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference" method="run" file="JUnit4TestReference.java" line="50" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.TestExecution" method="run" file="TestExecution.java" line="38" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="runTests" file="RemoteTestRunner.java" line="467" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="runTests" file="RemoteTestRunner.java" line="683" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="run" file="RemoteTestRunner.java" line="390" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="main" file="RemoteTestRunner.java" line="197" exact="true" location=".cp/" version="?"/> - </ExtendedStackTrace> - <Suppressed> - <Suppressed commonElementCount="0" localizedMessage="I am suppressed exception 1" message="I am suppressed exception 1" name="java.lang.IndexOutOfBoundsException"> - <ExtendedStackTrace> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.LogEventFixtures" method="createLogEvent" file="LogEventFixtures.java" line="57" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.XmlLayoutTest" method="testAllFeatures" file="XmlLayoutTest.java" line="122" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.XmlLayoutTest" method="testLocationOnCompactOnMdcOn" file="XmlLayoutTest.java" line="270" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="sun.reflect.NativeMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="sun.reflect.NativeMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="sun.reflect.DelegatingMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="java.lang.reflect.Method" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="org.junit.runners.model.FrameworkMethod$1" method="runReflectiveCall" file="FrameworkMethod.java" line="47" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.model.ReflectiveCallable" method="run" file="ReflectiveCallable.java" line="12" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.model.FrameworkMethod" method="invokeExplosively" file="FrameworkMethod.java" line="44" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.InvokeMethod" method="evaluate" file="InvokeMethod.java" line="17" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="runLeaf" file="ParentRunner.java" line="271" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.BlockJUnit4ClassRunner" method="runChild" file="BlockJUnit4ClassRunner.java" line="70" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.BlockJUnit4ClassRunner" method="runChild" file="BlockJUnit4ClassRunner.java" line="50" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$3" method="run" file="ParentRunner.java" line="238" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$1" method="schedule" file="ParentRunner.java" line="63" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="runChildren" file="ParentRunner.java" line="236" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="access$000" file="ParentRunner.java" line="53" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$2" method="evaluate" file="ParentRunner.java" line="229" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.RunBefores" method="evaluate" file="RunBefores.java" line="26" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.RunAfters" method="evaluate" file="RunAfters.java" line="27" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="run" file="ParentRunner.java" line="309" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference" method="run" file="JUnit4TestReference.java" line="50" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.TestExecution" method="run" file="TestExecution.java" line="38" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="runTests" file="RemoteTestRunner.java" line="467" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="runTests" file="RemoteTestRunner.java" line="683" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="run" file="RemoteTestRunner.java" line="390" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="main" file="RemoteTestRunner.java" line="197" exact="true" location=".cp/" version="?"/> - </ExtendedStackTrace> - </Suppressed> - <Suppressed commonElementCount="0" localizedMessage="I am suppressed exception 2" message="I am suppressed exception 2" name="java.lang.IndexOutOfBoundsException"> - <ExtendedStackTrace> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.LogEventFixtures" method="createLogEvent" file="LogEventFixtures.java" line="58" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.XmlLayoutTest" method="testAllFeatures" file="XmlLayoutTest.java" line="122" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="org.apache.logging.log4j.core.layout.XmlLayoutTest" method="testLocationOnCompactOnMdcOn" file="XmlLayoutTest.java" line="270" exact="true" location="test-classes/" version="?"/> - <ExtendedStackTrace class="sun.reflect.NativeMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="sun.reflect.NativeMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="sun.reflect.DelegatingMethodAccessorImpl" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="java.lang.reflect.Method" method="invoke" line="-1" exact="false" location="?" version="1.7.0_55"/> - <ExtendedStackTrace class="org.junit.runners.model.FrameworkMethod$1" method="runReflectiveCall" file="FrameworkMethod.java" line="47" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.model.ReflectiveCallable" method="run" file="ReflectiveCallable.java" line="12" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.model.FrameworkMethod" method="invokeExplosively" file="FrameworkMethod.java" line="44" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.InvokeMethod" method="evaluate" file="InvokeMethod.java" line="17" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="runLeaf" file="ParentRunner.java" line="271" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.BlockJUnit4ClassRunner" method="runChild" file="BlockJUnit4ClassRunner.java" line="70" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.BlockJUnit4ClassRunner" method="runChild" file="BlockJUnit4ClassRunner.java" line="50" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$3" method="run" file="ParentRunner.java" line="238" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$1" method="schedule" file="ParentRunner.java" line="63" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="runChildren" file="ParentRunner.java" line="236" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="access$000" file="ParentRunner.java" line="53" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner$2" method="evaluate" file="ParentRunner.java" line="229" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.RunBefores" method="evaluate" file="RunBefores.java" line="26" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.internal.runners.statements.RunAfters" method="evaluate" file="RunAfters.java" line="27" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.junit.runners.ParentRunner" method="run" file="ParentRunner.java" line="309" exact="true" location="junit-4.11.jar" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference" method="run" file="JUnit4TestReference.java" line="50" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.TestExecution" method="run" file="TestExecution.java" line="38" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="runTests" file="RemoteTestRunner.java" line="467" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="runTests" file="RemoteTestRunner.java" line="683" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="run" file="RemoteTestRunner.java" line="390" exact="true" location=".cp/" version="?"/> - <ExtendedStackTrace class="org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" method="main" file="RemoteTestRunner.java" line="197" exact="true" location=".cp/" version="?"/> - </ExtendedStackTrace> - </Suppressed> - </Suppressed> - </Thrown> -</Event> -</pre> - * <p> * If {@code complete="false"}, the appender does not write the XML processing instruction and the root element. * </p> * <h3>Encoding</h3> * <p> - * Appenders using this layout should have their {@code charset} set to {@code UTF-8} or {@code UTF-16}, otherwise events containing non - * ASCII characters could result in corrupted log files. + * Appenders using this layout should have their {@code charset} set to {@code UTF-8} or {@code UTF-16}, otherwise + * events containing non-ASCII characters could result in corrupted log files. * </p> * <h3>Pretty vs. compact XML</h3> * <p> - * By default, the XML layout is not compact (compact = not "pretty") with {@code compact="false"}, which means the appender uses - * end-of-line characters and indents lines to format the XML. If {@code compact="true"}, then no end-of-line or indentation is used. - * Message content may contain, of course, end-of-lines. + * By default, the XML layout is not compact (compact = not "pretty") with {@code compact="false"}, which means the + * appender uses end-of-line characters and indents lines to format the XML. If {@code compact="true"}, then no + * end-of-line or indentation is used. Message content may contain, of course, end-of-lines. * </p> */ -//CHECKSTYLE:ON @Plugin(name = "XmlLayout", category = Node.CATEGORY, elementType = Layout.ELEMENT_TYPE, printObject = true) public final class XmlLayout extends AbstractJacksonLayout { http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c43152b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/YamlLayout.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/YamlLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/YamlLayout.java index 9ee67d7..c762548 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/YamlLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/YamlLayout.java @@ -37,657 +37,6 @@ import org.apache.logging.log4j.util.Strings; /** * Appends a series of YAML events as strings serialized as bytes. * - * <p> - * A YAML log event follows this pattern: - * </p> - * - * <pre>--- -timeMillis: 1 -thread: "MyThreadName" -level: "DEBUG" -loggerName: "a.B" -marker: - name: "Marker1" - parents: - - name: "ParentMarker1" - parents: - - name: "GrandMotherMarker" - - name: "GrandFatherMarker" - - name: "ParentMarker2" -message: "Msg" -thrown: - commonElementCount: 0 - localizedMessage: "testIOEx" - message: "testIOEx" - name: "java.io.IOException" - cause: - commonElementCount: 27 - localizedMessage: "testNPEx" - message: "testNPEx" - name: "java.lang.NullPointerException" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 52 - exact: false - location: "test-classes/" - version: "?" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 55 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testAllFeatures" - file: "YamlLayoutTest.java" - line: 109 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testLocationOnCompactOffEventEolOffMdcOn" - file: "YamlLayoutTest.java" - line: 280 - exact: true - location: "test-classes/" - version: "?" - - class: "sun.reflect.NativeMethodAccessorImpl" - method: "invoke0" - file: "NativeMethodAccessorImpl.java" - line: -2 - exact: false - location: "?" - version: "1.7.0_79" - - class: "sun.reflect.NativeMethodAccessorImpl" - method: "invoke" - file: "NativeMethodAccessorImpl.java" - line: 57 - exact: false - location: "?" - version: "1.7.0_79" - - class: "sun.reflect.DelegatingMethodAccessorImpl" - method: "invoke" - file: "DelegatingMethodAccessorImpl.java" - line: 43 - exact: false - location: "?" - version: "1.7.0_79" - - class: "java.lang.reflect.Method" - method: "invoke" - file: "Method.java" - line: 606 - exact: false - location: "?" - version: "1.7.0_79" - - class: "org.junit.runners.model.FrameworkMethod$1" - method: "runReflectiveCall" - file: "FrameworkMethod.java" - line: 50 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.model.ReflectiveCallable" - method: "run" - file: "ReflectiveCallable.java" - line: 12 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.model.FrameworkMethod" - method: "invokeExplosively" - file: "FrameworkMethod.java" - line: 47 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.InvokeMethod" - method: "evaluate" - file: "InvokeMethod.java" - line: 17 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "runLeaf" - file: "ParentRunner.java" - line: 325 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.BlockJUnit4ClassRunner" - method: "runChild" - file: "BlockJUnit4ClassRunner.java" - line: 78 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.BlockJUnit4ClassRunner" - method: "runChild" - file: "BlockJUnit4ClassRunner.java" - line: 57 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$3" - method: "run" - file: "ParentRunner.java" - line: 290 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$1" - method: "schedule" - file: "ParentRunner.java" - line: 71 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "runChildren" - file: "ParentRunner.java" - line: 288 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "access$000" - file: "ParentRunner.java" - line: 58 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$2" - method: "evaluate" - file: "ParentRunner.java" - line: 268 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.RunBefores" - method: "evaluate" - file: "RunBefores.java" - line: 26 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.RunAfters" - method: "evaluate" - file: "RunAfters.java" - line: 27 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "run" - file: "ParentRunner.java" - line: 363 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference" - method: "run" - file: "JUnit4TestReference.java" - line: 86 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.TestExecution" - method: "run" - file: "TestExecution.java" - line: 38 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "runTests" - file: "RemoteTestRunner.java" - line: 459 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "runTests" - file: "RemoteTestRunner.java" - line: 675 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "run" - file: "RemoteTestRunner.java" - line: 382 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "main" - file: "RemoteTestRunner.java" - line: 192 - exact: true - location: ".cp/" - version: "?" - suppressed: - - commonElementCount: 0 - localizedMessage: "I am suppressed exception 1" - message: "I am suppressed exception 1" - name: "java.lang.IndexOutOfBoundsException" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 56 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testAllFeatures" - file: "YamlLayoutTest.java" - line: 109 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testLocationOnCompactOffEventEolOffMdcOn" - file: "YamlLayoutTest.java" - line: 280 - exact: true - location: "test-classes/" - version: "?" - - class: "sun.reflect.NativeMethodAccessorImpl" - method: "invoke0" - file: "NativeMethodAccessorImpl.java" - line: -2 - exact: false - location: "?" - version: "1.7.0_79" - - class: "sun.reflect.NativeMethodAccessorImpl" - method: "invoke" - file: "NativeMethodAccessorImpl.java" - line: 57 - exact: false - location: "?" - version: "1.7.0_79" - - class: "sun.reflect.DelegatingMethodAccessorImpl" - method: "invoke" - file: "DelegatingMethodAccessorImpl.java" - line: 43 - exact: false - location: "?" - version: "1.7.0_79" - - class: "java.lang.reflect.Method" - method: "invoke" - file: "Method.java" - line: 606 - exact: false - location: "?" - version: "1.7.0_79" - - class: "org.junit.runners.model.FrameworkMethod$1" - method: "runReflectiveCall" - file: "FrameworkMethod.java" - line: 50 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.model.ReflectiveCallable" - method: "run" - file: "ReflectiveCallable.java" - line: 12 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.model.FrameworkMethod" - method: "invokeExplosively" - file: "FrameworkMethod.java" - line: 47 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.InvokeMethod" - method: "evaluate" - file: "InvokeMethod.java" - line: 17 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "runLeaf" - file: "ParentRunner.java" - line: 325 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.BlockJUnit4ClassRunner" - method: "runChild" - file: "BlockJUnit4ClassRunner.java" - line: 78 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.BlockJUnit4ClassRunner" - method: "runChild" - file: "BlockJUnit4ClassRunner.java" - line: 57 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$3" - method: "run" - file: "ParentRunner.java" - line: 290 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$1" - method: "schedule" - file: "ParentRunner.java" - line: 71 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "runChildren" - file: "ParentRunner.java" - line: 288 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "access$000" - file: "ParentRunner.java" - line: 58 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$2" - method: "evaluate" - file: "ParentRunner.java" - line: 268 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.RunBefores" - method: "evaluate" - file: "RunBefores.java" - line: 26 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.RunAfters" - method: "evaluate" - file: "RunAfters.java" - line: 27 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "run" - file: "ParentRunner.java" - line: 363 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference" - method: "run" - file: "JUnit4TestReference.java" - line: 86 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.TestExecution" - method: "run" - file: "TestExecution.java" - line: 38 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "runTests" - file: "RemoteTestRunner.java" - line: 459 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "runTests" - file: "RemoteTestRunner.java" - line: 675 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "run" - file: "RemoteTestRunner.java" - line: 382 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "main" - file: "RemoteTestRunner.java" - line: 192 - exact: true - location: ".cp/" - version: "?" - - commonElementCount: 0 - localizedMessage: "I am suppressed exception 2" - message: "I am suppressed exception 2" - name: "java.lang.IndexOutOfBoundsException" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 57 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testAllFeatures" - file: "YamlLayoutTest.java" - line: 109 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testLocationOnCompactOffEventEolOffMdcOn" - file: "YamlLayoutTest.java" - line: 280 - exact: true - location: "test-classes/" - version: "?" - - class: "sun.reflect.NativeMethodAccessorImpl" - method: "invoke0" - file: "NativeMethodAccessorImpl.java" - line: -2 - exact: false - location: "?" - version: "1.7.0_79" - - class: "sun.reflect.NativeMethodAccessorImpl" - method: "invoke" - file: "NativeMethodAccessorImpl.java" - line: 57 - exact: false - location: "?" - version: "1.7.0_79" - - class: "sun.reflect.DelegatingMethodAccessorImpl" - method: "invoke" - file: "DelegatingMethodAccessorImpl.java" - line: 43 - exact: false - location: "?" - version: "1.7.0_79" - - class: "java.lang.reflect.Method" - method: "invoke" - file: "Method.java" - line: 606 - exact: false - location: "?" - version: "1.7.0_79" - - class: "org.junit.runners.model.FrameworkMethod$1" - method: "runReflectiveCall" - file: "FrameworkMethod.java" - line: 50 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.model.ReflectiveCallable" - method: "run" - file: "ReflectiveCallable.java" - line: 12 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.model.FrameworkMethod" - method: "invokeExplosively" - file: "FrameworkMethod.java" - line: 47 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.InvokeMethod" - method: "evaluate" - file: "InvokeMethod.java" - line: 17 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "runLeaf" - file: "ParentRunner.java" - line: 325 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.BlockJUnit4ClassRunner" - method: "runChild" - file: "BlockJUnit4ClassRunner.java" - line: 78 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.BlockJUnit4ClassRunner" - method: "runChild" - file: "BlockJUnit4ClassRunner.java" - line: 57 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$3" - method: "run" - file: "ParentRunner.java" - line: 290 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$1" - method: "schedule" - file: "ParentRunner.java" - line: 71 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "runChildren" - file: "ParentRunner.java" - line: 288 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "access$000" - file: "ParentRunner.java" - line: 58 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner$2" - method: "evaluate" - file: "ParentRunner.java" - line: 268 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.RunBefores" - method: "evaluate" - file: "RunBefores.java" - line: 26 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.internal.runners.statements.RunAfters" - method: "evaluate" - file: "RunAfters.java" - line: 27 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.junit.runners.ParentRunner" - method: "run" - file: "ParentRunner.java" - line: 363 - exact: true - location: "junit-4.12.jar" - version: "4.12" - - class: "org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference" - method: "run" - file: "JUnit4TestReference.java" - line: 86 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.TestExecution" - method: "run" - file: "TestExecution.java" - line: 38 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "runTests" - file: "RemoteTestRunner.java" - line: 459 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "runTests" - file: "RemoteTestRunner.java" - line: 675 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "run" - file: "RemoteTestRunner.java" - line: 382 - exact: true - location: ".cp/" - version: "?" - - class: "org.eclipse.jdt.internal.junit.runner.RemoteTestRunner" - method: "main" - file: "RemoteTestRunner.java" - line: 192 - exact: true - location: ".cp/" - version: "?" -contextStack: -- "stack_msg1" -- "stack_msg2" -endOfBatch: false -loggerFqcn: "f.q.c.n" -contextMap: - MDC.B: "B_Value" - MDC.A: "A_Value" -threadId: 1 -threadPriority: 5 -source: - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 53</pre> * <h3>Encoding</h3> * <p> * Appenders using this layout should have their {@code charset} set to {@code UTF-8} or {@code UTF-16}, otherwise http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c43152b/src/site/xdoc/manual/layouts.xml.vm ---------------------------------------------------------------------- diff --git a/src/site/xdoc/manual/layouts.xml.vm b/src/site/xdoc/manual/layouts.xml.vm index 0699abf..2803b4c 100644 --- a/src/site/xdoc/manual/layouts.xml.vm +++ b/src/site/xdoc/manual/layouts.xml.vm @@ -303,7 +303,6 @@ logger.debug("one={}, two={}, three={}", 1, 2, 3); </subsection> <a name="JSONLayout"/> <subsection name="JSON Layout"> - <!-- From Javadoc of org.apache.logging.log4j.core.layout.JsonLayout --> <p> Appends a series of JSON events as strings serialized as bytes. </p> @@ -314,30 +313,56 @@ logger.debug("one={}, two={}, three={}", 1, 2, 3); separate file to form a well-formed JSON document. </p> <p> - A well-formed JSON document follows this pattern: + If <code>complete="false"</code>, the appender does not write the JSON open array character "[" at the start + of the document, "]" and the end, nor comma "," between records. </p> - <pre class="prettyprint linenums">[ - { - "logger":"com.foo.Bar", - "timestamp":"1376681196470", - "level":"INFO", - "threadId":1, - "thread":"main", - "threadPriority":1, - "message":"Message flushed with immediate flush=true" + <p> + Log event follows this pattern: + </p> + <pre class="prettyprint linenums">{ + "timeMillis" : 1493121664118, + "thread" : "main", + "level" : "INFO", + "loggerName" : "HelloWorld", + "marker" : { + "name" : "child", + "parents" : [ { + "name" : "parent", + "parents" : [ { + "name" : "grandparent" + } ] + } ] + }, + "message" : "Hello, world!", + "thrown" : { + "commonElementCount" : 0, + "name" : "java.lang.RuntimeException", + "extendedStackTrace" : [ { + "class" : "logtest.Main", + "method" : "main", + "file" : "Main.java", + "line" : 29, + "exact" : true, + "location" : "classes/", + "version" : "?" + } ] }, - { - "logger":"com.foo.Bar", - "timestamp":"1376681196471", - "level":"ERROR", - "threadId":1, - "thread":"main", - "threadPriority":1, - "message":"Message flushed with immediate flush=true", - "throwable":"java.lang.IllegalArgumentException: badarg\\n\\tat org.apache.logging.log4j.core.appender.JSONCompleteFileAppenderTest.testFlushAtEndOfBatch(JSONCompleteFileAppenderTest.java:54)\\n\\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\\n\\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\\n\\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\\n\\tat java.lang.reflect.Method.invoke(Method.java:606)\\n\\tat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)\\n\\tat org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)\\n\\tat org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)\\n\\tat org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)\\n\\tat org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)\\n\\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(Bl ockJUnit4ClassRunner.java:70)\\n\\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)\\n\\tat org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)\\n\\tat org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)\\n\\tat org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)\\n\\tat org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)\\n\\tat org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)\\n\\tat org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)\\n\\tat org.junit.runners.ParentRunner.run(ParentRunner.java:309)\\n\\tat org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)\\n\\tat org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTe stRunner.java:683)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)\\n\\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)\\n" + "contextStack" : [ "one", "two" ], + "endOfBatch" : false, + "loggerFqcn" : "org.apache.logging.log4j.spi.AbstractLogger", + "contextMap" : { + "bar" : "BAR", + "foo" : "FOO" + }, + "threadId" : 1, + "threadPriority" : 5, + "source" : { + "class" : "logtest.Main", + "method" : "main", + "file" : "Main.java", + "line" : 29 } -] -</pre> +}</pre> <p> If <code>complete="false"</code>, the appender does not write the JSON open array character "[" at the start of the document, "]" and the end, nor comma "," between records. @@ -1970,7 +1995,6 @@ at org.apache.logging.log4j.core.pattern.ExtendedThrowableTest.testException(Ext </subsection> <a name="XMLLayout"/> <subsection name="XML Layout"> - <!-- From Javadoc of org.apache.logging.log4j.core.layout.XmlLayout --> <p> <!-- FIXME: log4j.dtd link is broken --> Appends a series of <code>Event</code> elements as defined in the <a href="log4j.dtd">log4j.dtd</a>. @@ -1986,17 +2010,52 @@ at org.apache.logging.log4j.core.pattern.ExtendedThrowableTest.testException(Ext <p> A well-formed XML document follows this pattern: </p> - <pre class="prettyprint linenums"><?xml version="1.0" encoding="UTF-8"?> -<Events xmlns="http://logging.apache.org/log4j/2.0/events"> - <Event logger="com.foo.Bar" timestamp="1373436580419" level="INFO" threadId="1" thread="main" threadPriority="1"> - <Message><![CDATA[This is a log message 1]]></Message> - <Marker parent="Parent Marker"><Child Marker></Marker> - </Event> - <Event logger="com.foo.Baz" timestamp="1373436580420" level="INFO" threadId="1" thread="main" threadPriority="1"> - <Message><![CDATA[This is a log message 2]]></Message> - <Marker><The Marker Name></Marker> - </Event> -</Events></pre> + <pre class="prettyprint linenums"><Event xmlns="http://logging.apache.org/log4j/2.0/events" + timeMillis="1493122559666" + level="INFO" + loggerName="HelloWorld" + endOfBatch="false" + thread="main" + loggerFqcn="org.apache.logging.log4j.spi.AbstractLogger" + threadId="1" + threadPriority="5"> + <Marker name="child"> + <Parents> + <Marker name="parent"> + <Parents> + <Marker name="grandparent"/> + </Parents> + </Marker> + </Parents> + </Marker> + <Message>Hello, world!</Message> + <ContextMap> + <item key="bar" value="BAR"/> + <item key="foo" value="FOO"/> + </ContextMap> + <ContextStack> + <ContextStackItem>one</ContextStackItem> + <ContextStackItem>two</ContextStackItem> + </ContextStack> + <Source + class="logtest.Main" + method="main" + file="Main.java" + line="29"/> + <Thrown commonElementCount="0" name="java.lang.RuntimeException"> + <ExtendedStackTrace> + <ExtendedStackTraceItem + class="logtest.Main" + method="main" + file="Main.java" + line="29" + exact="true" + location="classes/" + version="?"/> + </ExtendedStackTrace> + </Thrown> +</Event> +</pre> <p> If <code>complete="false"</code>, the appender does not write the XML processing instruction and the root element. @@ -2005,7 +2064,6 @@ at org.apache.logging.log4j.core.pattern.ExtendedThrowableTest.testException(Ext <p>Markers are represented by a <code>Marker</code> element within the <code>Event</code> element. The <code>Marker</code> element appears only when a marker is used in the log message. The name of the marker's parent will be provided in the <code>parent</code> attribute of the <code>Marker</code> element. - Only the leaf marker is included, not the full hierarchy. </p> <h4>Pretty vs. compact XML</h4> <p> @@ -2063,144 +2121,51 @@ at org.apache.logging.log4j.core.pattern.ExtendedThrowableTest.testException(Ext </subsection> <a name="YamlLayout"/> <subsection name="YAML Layout"> - <!-- From Javadoc of org.apache.logging.log4j.core.layout.YamlLayout --> <p> Appends a series of YAML events as strings serialized as bytes. </p> <p> A YAML log event follows this pattern: </p> - <pre>--- -timeMillis: 1 -thread: "MyThreadName" -level: "DEBUG" -loggerName: "a.B" + <pre class="prettyprint linenums">--- +timeMillis: 1493122307075 +thread: "main" +level: "INFO" +loggerName: "HelloWorld" marker: - name: "Marker1" - parents: - - name: "ParentMarker1" - parents: - - name: "GrandMotherMarker" - - name: "GrandFatherMarker" - - name: "ParentMarker2" -message: "Msg" + name: "child" + parents: + - name: "parent" + parents: + - name: "grandparent" +message: "Hello, world!" thrown: - commonElementCount: 0 - localizedMessage: "testIOEx" - message: "testIOEx" - name: "java.io.IOException" - cause: - commonElementCount: 27 - localizedMessage: "testNPEx" - message: "testNPEx" - name: "java.lang.NullPointerException" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 52 - exact: false - location: "test-classes/" - version: "?" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 55 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testAllFeatures" - file: "YamlLayoutTest.java" - line: 109 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testLocationOnCompactOffEventEolOffMdcOn" - file: "YamlLayoutTest.java" - line: 280 - exact: true - location: "test-classes/" - version: "?" - -... - - suppressed: - - commonElementCount: 0 - localizedMessage: "I am suppressed exception 1" - message: "I am suppressed exception 1" - name: "java.lang.IndexOutOfBoundsException" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 56 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testAllFeatures" - file: "YamlLayoutTest.java" - line: 109 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testLocationOnCompactOffEventEolOffMdcOn" - file: "YamlLayoutTest.java" - line: 280 - exact: true - location: "test-classes/" - version: "?" - -... - - - commonElementCount: 0 - localizedMessage: "I am suppressed exception 2" - message: "I am suppressed exception 2" - name: "java.lang.IndexOutOfBoundsException" - extendedStackTrace: - - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 57 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testAllFeatures" - file: "YamlLayoutTest.java" - line: 109 - exact: true - location: "test-classes/" - version: "?" - - class: "org.apache.logging.log4j.core.layout.YamlLayoutTest" - method: "testLocationOnCompactOffEventEolOffMdcOn" - file: "YamlLayoutTest.java" - line: 280 - exact: true - location: "test-classes/" - version: "?" - -... - + commonElementCount: 0 + name: "java.lang.RuntimeException" + extendedStackTrace: + - class: "logtest.Main" + method: "main" + file: "Main.java" + line: 29 + exact: true + location: "classes/" + version: "?" contextStack: -- "stack_msg1" -- "stack_msg2" +- "one" +- "two" endOfBatch: false -loggerFqcn: "f.q.c.n" +loggerFqcn: "org.apache.logging.log4j.spi.AbstractLogger" contextMap: - MDC.B: "B_Value" - MDC.A: "A_Value" + bar: "BAR" + foo: "FOO" threadId: 1 threadPriority: 5 source: - class: "org.apache.logging.log4j.core.layout.LogEventFixtures" - method: "createLogEvent" - file: "LogEventFixtures.java" - line: 53</pre> + class: "logtest.Main" + method: "main" + file: "Main.java" + line: 29 +</pre> <table> <tr> <th>Parameter Name</th>