This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch 2.x-site-stg-out
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/2.x-site-stg-out by this push:
     new 0f8f5d8455 Add website content generated from 
`f1de65f8398b7f9aa8cb62df98f365d8c3ec7c7f`
0f8f5d8455 is described below

commit 0f8f5d845522fc7ea8e700911e01f233e4f16488
Author: ASF Logging Services RM <[email protected]>
AuthorDate: Fri May 10 19:58:36 2024 +0000

    Add website content generated from 
`f1de65f8398b7f9aa8cb62df98f365d8c3ec7c7f`
---
 manual/flowtracing.html | 450 ++++++++++++++++++++++++++----------------------
 plugin-reference.html   |  12 +-
 sitemap.xml             | 136 +++++++--------
 3 files changed, 318 insertions(+), 280 deletions(-)

diff --git a/manual/flowtracing.html b/manual/flowtracing.html
index 9fca70b9e3..252f064b53 100644
--- a/manual/flowtracing.html
+++ b/manual/flowtracing.html
@@ -303,169 +303,292 @@
 </aside>
 <article class="doc">
 <h1 class="page">Flow Tracing</h1>
+<div id="preamble">
+<div class="sectionbody">
 <div class="paragraph">
-<p>The <code>Logger</code> class provides logging methods that are quite 
useful for
-following the execution path of applications. These methods generate
-logging events that can be filtered separately from other debug logging.
-Liberal use of these methods is encouraged as the output has been found
-to</p>
+<p>Flow tracing in Log4j is an advanced logging technique designed to enhance
+the visibility of application processes. With this technique, developers can 
track
+the flow of data through their application by using special methods that log 
entry
+and exit points within the code.</p>
+</div>
+<div class="paragraph">
+<p>These methods are:</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p>aid in problem diagnosis in development without requiring a debug
-session</p>
+<p><code>entry()</code> or <code>traceEntry()</code></p>
 </li>
 <li>
-<p>aid in problem diagnosis in production where no debugging is possible</p>
+<p><code>exit()</code> or <code>traceExit()</code></p>
 </li>
 <li>
-<p>help educate new developers in learning the application.</p>
+<p><code>throwing()</code></p>
+</li>
+<li>
+<p><code>catching()</code></p>
 </li>
 </ul>
 </div>
 <div class="paragraph">
-<p>The most used methods are the entry() or traceEntry() and exit() or
-traceExit() methods. entry() or traceEntry() should be placed at the
-beginning of methods, except perhaps for simple getters and setters.
-entry() can be called passing from 0 to 4 parameters. Typically these
-will be parameters passed to the method. traceEntry() can be passed a
-format String and a variable list of parameters, or a Message. The
-entry() and traceEntry() methods log with a level of TRACE and uses a
-Marker with a name of "ENTER" which is also a "FLOW" Marker and all
-message strings will begin with "event", even if a format String or
-Message is used.</p>
+<p>With these methods, we can investigate environments where traditional 
debugging is not possible,
+such as in production or during live application monitoring.
+Furthermore, new developers can be educated on the application&#8217;s 
behavior by examining the logs.</p>
 </div>
 <div class="paragraph">
-<p>The main difference between the entry and traceEntry methods is that the
-entry method accepts a variable list of objects where presumably each is
-a method parameter. The traceEntry method accepts a format string
-followed by a variable list of objects, presumably included in the
-format String. It is not possible to have a single method that includes
-both of these as it would be ambiguous whether the first String is a
-parameter or a format String.</p>
+<p>Flow tracing offers a structured approach to all this.</p>
+</div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="_flow_tracing_methods"><a class="anchor" 
href="#_flow_tracing_methods"></a>Flow Tracing Methods</h2>
+<div class="sectionbody">
 <div class="paragraph">
-<p>An exit() or traceExit() method should be placed before any return
-statement or as the last statement of methods without a return. exit()
-and traceExit() can be called with or without a parameter. Typically,
-methods that return void will use exit() or traceExit() while methods
-that return an Object will use exit(Object obj) or traceExit(object, new
-SomeMessage(object)). The exit() and traceExit() methods log with a
-level of TRACE and uses a Marker with a name of "EXIT" which is also a
-"FLOW" Marker and all message strings will begin with "exit", even if a
-format String or Message is used.</p>
+<p>The methods used most often are <code>entry()</code> or 
<code>traceEntry()</code> and <code>exit()</code> or <code>traceExit()</code>.
+As the name suggests, the "entry" methods are used at the beginning of a 
method,
+while the "exit" methods are used at the end of a method.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod() {
+    logger.entry(); <i class="conum" data-value="1"></i><b>(1)</b>
+    // method body
+    logger.exit(); <i class="conum" data-value="2"></i><b>(2)</b>
+}</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>The <code>entry()</code> method is called at the beginning of the 
method.</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="2"></i><b>2</b></td>
+<td>The <code>exit()</code> method is called at the end of the method.</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
-<p>The throwing() method can be used by an application when it is throwing
-an exception that is unlikely to be handled, such as a RuntimeException.
-This will insure that proper diagnostics are available if needed. The
-logging event generated will have a level of ERROR and will have an
-associated Marker with a name of "THROWING" which is also an "EXCEPTION"
-Marker.</p>
+<p>Both <code>entry()</code> and <code>exit()</code> methods can be called 
with or without parameters.
+In the case of <code>entry()</code> it makes sense to pass the method 
parameters as arguments.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod(String param) {
+    logger.entry(param); <i class="conum" data-value="1"></i><b>(1)</b>
+    // method body
+    logger.exit(); <i class="conum" data-value="2"></i><b>(2)</b>
+}</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>The <code>entry()</code> method is called at the beginning of the 
method.</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
-<p>The catching() method can be used by an application when it catches an
-Exception that it is not going to rethrow, either explicitly or attached
-to another Exception. The logging event generated will have a level of
-ERROR and will have an associated Marker with a name of "CATCHING" which
-is also an "EXCEPTION" Marker.</p>
+<p>The <code>traceEntry()</code> also supports messages.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod(String[] text) {
+    logger.traceEntry(new JsonMessage(text)); <i class="conum" 
data-value="1"></i><b>(1)</b>
+    // method body
+}</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>Using the <code>JsonMessage</code> class to log the <code>text</code> 
parameter.</td>
+</tr>
+</table>
 </div>
 <div class="paragraph">
-<p>The following example shows a simple application using these methods in
-a fairly typical manner. The throwing() is not present since no
-Exceptions are explicitly thrown and not handled.</p>
+<p>Very similar, it is possible to use <code>exit()</code> with methods that 
return a value.</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">package com.test;
-
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LogManager;
-
-import java.util.Random;
-
-public class TestService {
-    private Logger logger = LogManager.getLogger(TestService.class.getName());
-
-    private String[] messages = new String[] {
-        "Hello, World",
-        "Goodbye Cruel World",
-        "You had me at hello"
-    };
-    private Random rand = new Random(1);
-
-    public void setMessages(String[] messages) {
-        logger.traceEntry(new JsonMessage(messages));
-        this.messages = messages;
-        logger.traceExit();
-    }
-
-    public String[] getMessages() {
-        logger.traceEntry();
-        return logger.traceExit(messages, new JsonMessage(messages));
-    }
-
-    public String retrieveMessage() {
-        logger.entry();
-
-        String testMsg = getMessage(getKey());
-
-        return logger.exit(testMsg);
-    }
-
-    public void exampleException() {
-        logger.entry();
-        try {
-            String msg = messages[messages.length];
-            logger.error("An exception should have been thrown");
-        } catch (Exception ex) {
-            logger.catching(ex);
-        }
-        logger.exit();
-    }
-
-    public String getMessage(int key) {
-        logger.entry(key);
-
-        String value = messages[key];
-
-        return logger.exit(value);
-    }
-
-    private int getKey() {
-        logger.entry();
-        int key = rand.nextInt(messages.length);
-        return logger.exit(key);
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public String someMethod() {
+    String result = "Hello";
+    // method body
+    return logger.exit(result); <i class="conum" data-value="1"></i><b>(1)</b>
+}</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>The <code>exit()</code> method can also return a value.</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>To work with exceptions, the <code>catching()</code> and 
<code>throwing()</code> methods are used.</p>
+</div>
+<div class="paragraph">
+<p>The following code shows, how to use the <code>catching()</code> method. It 
will be called
+inside the <code>catch</code> block of a try-catch statement.</p>
+</div>
+<div class="paragraph">
+<p>The <code>catching()</code> method can be used by an application when it 
catches an
+Exception that it is not going to rethrow, either explicitly or attached
+to another Exception. The logging event generated will have a level of 
<code>ERROR</code>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod() {
+    try {
+        // Lets assume an exception is thrown here
+        String msg = messages[messages.length];
+    } catch (Exception ex) {
+        logger.catching(ex); <i class="conum" data-value="1"></i><b>(1)</b>
     }
 }</code></pre>
 </div>
 </div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>The <code>catching()</code> method is used to log exceptions that are 
caught and not rethrown.</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <code>throwing()</code> method is used to log exceptions that are 
thrown and not caught.
+The code shows how to use the <code>throwing()</code> method- like 
<code>catching()</code> it will be called
+inside the <code>catch</code> block of a try-catch statement.</p>
+</div>
 <div class="paragraph">
-<p>This test application uses the preceding service to generate logging
-events.</p>
+<p>The <code>throwing()</code> method can be used by an application when it is 
throwing
+an exception that is unlikely to be handled, such as a RuntimeException.
+This will ensure that proper diagnostics are available if needed. The
+logging event generated will have a level of <code>ERROR</code>.</p>
 </div>
 <div class="listingblock">
 <div class="content">
-<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">package com.test;
-
-public class App {
-
-    public static void main( String[] args ) {
-        TestService service = new TestService();
-        service.retrieveMessage();
-        service.retrieveMessage();
-        service.exampleException();
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod() {
+    try {
+        // Lets assume an exception is thrown here
+        String msg = messages[messages.length];
+    } catch (Exception ex) {
+        logger.throwing(ex); <i class="conum" data-value="1"></i><b>(1)</b>
     }
 }</code></pre>
 </div>
 </div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>The <code>throwing()</code> method is used to log exceptions that are 
thrown and not caught.</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_differences_in_flow_tracing_methods"><a class="anchor" 
href="#_differences_in_flow_tracing_methods"></a>Differences in flow tracing 
methods</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Flow tracing methods have specific markers assigned and logs with a level 
of <code>TRACE</code>.
+It&#8217;s also noteworthy that all messages will begin with the word 
"event".</p>
+</div>
+<div class="paragraph">
+<p>The table below shows the methods and their special features.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 33.3333%;">
+<col style="width: 33.3334%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Method Name</th>
+<th class="tableblock halign-left valign-top">Marker Name</th>
+<th class="tableblock halign-left valign-top">Special Features</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>entry()</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>ENTER</code>, <code>FLOW</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Accepts 0 
to 4 parameters</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>traceEntry()</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>ENTER</code>, <code>FLOW</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Can take a 
format string and a variable list of parameters.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>exit()</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>EXIT</code>, <code>FLOW</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Can be 
called with or without parameters.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>traceExit()</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>EXIT</code>, <code>FLOW</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Handles 
return values differently based on the method signature.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>throwing()</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>THROWING</code>, <code>EXCEPTION</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Typically 
used when an application throws an exception that is unlikely to be handled, 
such as a RuntimeException.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>catching()</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>CATCHING</code>, <code>EXCEPTION</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Used when 
catching exceptions that are not rethrown; logs with ERROR level.</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_flow_tracing_example_configuration"><a class="anchor" 
href="#_flow_tracing_example_configuration"></a>Flow Tracing Example 
Configuration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The following example demonstrates how to configure Log4j to use flow 
tracing.
+While it is recommended to use the <code>JsonTemplateLayout</code> in 
production, we are using the
+<code>PatternLayout</code> in this example for simplicity.</p>
+</div>
 <div class="paragraph">
 <p>The configuration below will cause all output to be routed to
 target/test.log. The pattern for the FileAppender includes the class
-name, line number and method name. Including these in the pattern are
+name, line number and method name. Including these in the pattern is
 critical for the log to be of value.</p>
 </div>
+<div class="paragraph">
+<p>The following example demonstrates how you could use flow tracing.
+The Configuration element is set with a status of "error," which means Log4j
+will only report issues that are of error severity or higher.
+Within the Appenders section, two appenders are defined: Console and File.</p>
+</div>
+<div class="paragraph">
+<p>The Console appender is configured to output logs to 
<code>SYSTEM_OUT</code>, typically the console.
+It includes a <code>ThresholdFilter</code> set to only accept messages at the 
<code>ERROR</code> level or above.
+This filters out less severe messages.
+The output format is specified by a <code>PatternLayout</code>, designed to 
include detailed
+trace information such as time, log level, class name, line number, and method 
name.
+Please note, that we are recommending <code>JsonTemplateLayout</code> over 
<code>PatternLayout</code> in production.</p>
+</div>
+<div class="paragraph">
+<p>Similarly, the File appender directs logs to a file named 
<code>target/test.log</code>.
+The appenders configuration will create a new file for every application 
run.</p>
+</div>
+<div class="paragraph">
+<p>Finally, in the Loggers section, the Root logger is set to a 
<code>TRACE</code> level which is necessary
+to see flow tracing in action. The Root logger references the File appender, 
directing
+its output to the configured file.</p>
+</div>
 <div class="listingblock">
 <div class="content">
 <pre class="highlightjs highlight"><code class="language-xml hljs" 
data-lang="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
@@ -490,94 +613,9 @@ critical for the log to be of value.</p>
 </div>
 </div>
 <div class="paragraph">
-<p>Here is the output that results from the Java classes and configuration
-above.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>19:08:07.056 TRACE com.test.TestService 19 retrieveMessage -  entry
-19:08:07.060 TRACE com.test.TestService 46 getKey -  entry
-19:08:07.060 TRACE com.test.TestService 48 getKey -  exit with (0)
-19:08:07.060 TRACE com.test.TestService 38 getMessage -  entry parms(0)
-19:08:07.060 TRACE com.test.TestService 42 getMessage -  exit with (Hello, 
World)
-19:08:07.060 TRACE com.test.TestService 23 retrieveMessage -  exit with 
(Hello, World)
-19:08:07.061 TRACE com.test.TestService 19 retrieveMessage -  entry
-19:08:07.061 TRACE com.test.TestService 46 getKey -  entry
-19:08:07.061 TRACE com.test.TestService 48 getKey -  exit with (1)
-19:08:07.061 TRACE com.test.TestService 38 getMessage -  entry parms(1)
-19:08:07.061 TRACE com.test.TestService 42 getMessage -  exit with (Goodbye 
Cruel World)
-19:08:07.061 TRACE com.test.TestService 23 retrieveMessage -  exit with 
(Goodbye Cruel World)
-19:08:07.062 TRACE com.test.TestService 27 exampleException -  entry
-19:08:07.077 DEBUG com.test.TestService 32 exampleException - catching 
java.lang.ArrayIndexOutOfBoundsException: 3
-        at com.test.TestService.exampleException(TestService.java:29) 
[classes/:?]
-        at com.test.App.main(App.java:9) [classes/:?]
-        at com.test.AppTest.testApp(AppTest.java:15) [test-classes/:?]
-        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.6.0_29]
-        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
~[?:1.6.0_29]
-        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 ~[?:1.6.0_29]
-        at java.lang.reflect.Method.invoke(Method.java:597) ~[?:1.6.0_29]
-        at 
org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) 
[junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45) 
[junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) 
[junit-4.3.1.jar:?]
-        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35) 
[surefire-junit4-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115)
 [surefire-junit4-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97) 
[surefire-junit4-2.7.2.jar:2.7.2]
-        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.6.0_29]
-        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
~[?:1.6.0_29]
-        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 ~[?:1.6.0_29]
-        at java.lang.reflect.Method.invoke(Method.java:597) ~[?:1.6.0_29]
-        at 
org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
 [surefire-booter-2.7.2.jar:2.7.2]
-        at $Proxy0.invoke(Unknown Source) [?:?]
-        at 
org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
 [surefire-booter-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
 [surefire-booter-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) 
[surefire-booter-2.7.2.jar:2.7.2]
-19:08:07.087 TRACE com.test.TestService 34 exampleException -  exit</pre>
+<p>By changing the level of the Root logger to <code>DEBUG</code>, you can 
reduce the amount of output.</p>
 </div>
 </div>
-<div class="paragraph">
-<p>Simply changing the root logger level to DEBUG in the example above will
-reduce the output considerably.</p>
-</div>
-<div class="literalblock">
-<div class="content">
-<pre>19:13:24.963 DEBUG com.test.TestService 32 exampleException - catching 
java.lang.ArrayIndexOutOfBoundsException: 3
-        at com.test.TestService.exampleException(TestService.java:29) 
[classes/:?]
-        at com.test.App.main(App.java:9) [classes/:?]
-        at com.test.AppTest.testApp(AppTest.java:15) [test-classes/:?]
-        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.6.0_29]
-        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
~[?:1.6.0_29]
-        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 ~[?:1.6.0_29]
-        at java.lang.reflect.Method.invoke(Method.java:597) ~[?:1.6.0_29]
-        at 
org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75) 
[junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45) 
[junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
 [junit-4.3.1.jar:?]
-        at 
org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) 
[junit-4.3.1.jar:?]
-        at 
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:35) 
[surefire-junit4-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:115)
 [surefire-junit4-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:97) 
[surefire-junit4-2.7.2.jar:2.7.2]
-        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:1.6.0_29]
-        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
~[?:1.6.0_29]
-        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 ~[?:1.6.0_29]
-        at java.lang.reflect.Method.invoke(Method.java:597) ~[?:1.6.0_29]
-        at 
org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
 [surefire-booter-2.7.2.jar:2.7.2]
-        at $Proxy0.invoke(Unknown Source) [?:?]
-        at 
org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150)
 [surefire-booter-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91)
 [surefire-booter-2.7.2.jar:2.7.2]
-        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) 
[surefire-booter-2.7.2.jar:2.7.2]</pre>
-</div>
 </div>
 </article>
   </div>
diff --git a/plugin-reference.html b/plugin-reference.html
index 8291718025..05f20ee26b 100644
--- a/plugin-reference.html
+++ b/plugin-reference.html
@@ -15842,10 +15842,10 @@ Supports Lookup expressions.</p>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>boolean?</code></p></td>
 <td class="tableblock halign-left valign-top"></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
-<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated JSON, 
defaults to "true".</p>
 </div>
 <div class="paragraph">
-<p>If "true", includes the stacktrace of any Throwable in the generated JSON, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
 </div></div></td>
 </tr>
 <tr>
@@ -17141,10 +17141,10 @@ Supports Lookup expressions.</p>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>boolean?</code></p></td>
 <td class="tableblock halign-left valign-top"></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
-<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated JSON, 
defaults to "true".</p>
 </div>
 <div class="paragraph">
-<p>If "true", includes the stacktrace of any Throwable in the generated JSON, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
 </div></div></td>
 </tr>
 <tr>
@@ -17340,10 +17340,10 @@ Supports Lookup expressions.</p>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>boolean?</code></p></td>
 <td class="tableblock halign-left valign-top"></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
-<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated JSON, 
defaults to "true".</p>
 </div>
 <div class="paragraph">
-<p>If "true", includes the stacktrace of any Throwable in the generated JSON, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
 </div></div></td>
 </tr>
 <tr>
diff --git a/sitemap.xml b/sitemap.xml
index 361c6761ad..e7c8f485b3 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,274 +2,274 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/5min.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/articles.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/development.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/download.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/faq.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/index.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/javadoc.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-1.2-api.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-api.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-appserver.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-cassandra.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-couchdb.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-docker.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-flume-ng.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-iostreams.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-jakarta-web.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-jcl.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-jmx-gui.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-jpl.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-jul.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-mongodb3.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-mongodb4.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-slf4j-impl.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-slf4j2-impl.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-spring-boot.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/2.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-spring-cloud-config.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-taglib.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-to-jul.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-to-slf4j.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-web.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/api-separation.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/api.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/appenders.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/architecture.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/async.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/cloud.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/compatibility.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/configuration.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/customconfig.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/customloglevels.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/eventlogging.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/extending.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/filters.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/flowtracing.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/garbagefree.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/index.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/installation.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/jmx.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/2.x/manual/json-template-layout.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/layouts.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/logbuilder.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/logsep.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/lookups.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/markers.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/messages.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/migration.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/performance.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/plugins.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/resource-logger.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/scoped-context.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/thread-context.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/usage.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/webapp.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/plugin-reference.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/release-notes.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/runtime-dependencies.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/thanks.html</loc>
-<lastmod>2024-05-10T14:35:36.942Z</lastmod>
+<lastmod>2024-05-10T19:58:14.714Z</lastmod>
 </url>
 </urlset>


Reply via email to