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 4acc3603a8 Add website content generated from 
`a669c16833d24467d3cfee377bbd25b57cd97a5f`
4acc3603a8 is described below

commit 4acc3603a8a1eea14ba893d4ee44d305cebec07c
Author: ASF Logging Services RM <[email protected]>
AuthorDate: Wed Jun 19 11:55:15 2024 +0000

    Add website content generated from 
`a669c16833d24467d3cfee377bbd25b57cd97a5f`
---
 hibernate.html               |   4 +-
 manual/api.html              |   4 +-
 manual/architecture.html     |   4 +-
 manual/flowtracing.html      | 539 +++++++++++++++++++++++++++++++------------
 manual/getting-started.html  |   8 +-
 manual/installation.html     |  12 +-
 manual/pattern-layout.html   |   8 +-
 manual/systemproperties.html |   2 +-
 migrate-from-logback.html    |   6 +-
 migrate-from-slf4j.html      |   6 +-
 plugin-reference.html        |  78 +++----
 release-notes.html           |   5 +-
 sitemap.xml                  | 120 +++++-----
 13 files changed, 518 insertions(+), 278 deletions(-)

diff --git a/hibernate.html b/hibernate.html
index d16e04291a..e4f165586d 100644
--- a/hibernate.html
+++ b/hibernate.html
@@ -335,7 +335,7 @@ If you have a working <a 
href="manual/installation.html#impl-core" class="xref p
 <p>A logging API is an interface your code or your dependencies directly logs 
against.
 It is required at compile-time.
 It is implementation agnostic to ensure that your application can write logs, 
but is not tied to a specific logging implementation.
-Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
+Log4j API, <a href="https://www.slf4j.org";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
 </dd>
 </dl>
 </div>
@@ -344,7 +344,7 @@ Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.ora
 <dt class="hdlist1">Logging implementation</dt>
 <dd>
 <p>A logging implementation is only required at runtime and can be changed 
without the need to recompile your software.
-Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch/";>Logback</a> are the most 
well-known logging implementations.</p>
+Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch";>Logback</a> are the most 
well-known logging implementations.</p>
 </dd>
 </dl>
 </div>
diff --git a/manual/api.html b/manual/api.html
index 7e8e9f9889..c494d82b4e 100644
--- a/manual/api.html
+++ b/manual/api.html
@@ -333,7 +333,7 @@
 <p>A logging API is an interface your code or your dependencies directly logs 
against.
 It is required at compile-time.
 It is implementation agnostic to ensure that your application can write logs, 
but is not tied to a specific logging implementation.
-Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
+Log4j API, <a href="https://www.slf4j.org";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
 </dd>
 </dl>
 </div>
@@ -342,7 +342,7 @@ Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.ora
 <dt class="hdlist1">Logging implementation</dt>
 <dd>
 <p>A logging implementation is only required at runtime and can be changed 
without the need to recompile your software.
-Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch/";>Logback</a> are the most 
well-known logging implementations.</p>
+Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch";>Logback</a> are the most 
well-known logging implementations.</p>
 </dd>
 </dl>
 </div>
diff --git a/manual/architecture.html b/manual/architecture.html
index a6660aeadf..6daed1f854 100644
--- a/manual/architecture.html
+++ b/manual/architecture.html
@@ -511,8 +511,8 @@ However, it is generally recommended that a Marker with a 
corresponding
 global Marker Filter be used instead.</p>
 </div>
 <div class="paragraph">
-<p><a href="http://logging.apache.org/log4j/1.2/manual.html";>Log4j 1.x</a> and
-<a 
href="http://logback.qos.ch/manual/architecture.html#effectiveLevel";>Logback</a>
+<p><a href="https://logging.apache.org/log4j/1.x/manual.html";>Log4j 1</a> and
+<a 
href="https://logback.qos.ch/manual/architecture.html#effectiveLevel";>Logback</a>
 both have the concept of "Level Inheritance". In Log4j 2, Loggers and
 LoggerConfigs are two different objects so this concept is implemented
 differently. Each Logger references the appropriate LoggerConfig which
diff --git a/manual/flowtracing.html b/manual/flowtracing.html
index 57b15a7b12..8a2fc39441 100644
--- a/manual/flowtracing.html
+++ b/manual/flowtracing.html
@@ -322,53 +322,60 @@
 <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
-<p>Flow tracing in Log4j is an advanced logging technique designed to enhance
-the visibility of application processes. With this technique, developers can 
track
-data flow through their application using unique methods that log entry
-and exit points within the code.</p>
+<p><a href="api.html" class="xref page">Log4j API</a> provides convenience 
logging methods to aid the tracking of the data flow through an application, 
which is referred to as <strong>flow tracing</strong>.
+<a href="#impl">Logging implementations</a> can choose to <a 
href="#log-events">generate specialized log events</a> allowing users to handle 
these messages different from the rest – see <a href="#example">Example 
configuration</a>.</p>
 </div>
 <div class="paragraph">
-<p>These methods are:</p>
+<p>Flow tracing is known to help with the following use cases:</p>
 </div>
 <div class="ulist">
 <ul>
 <li>
-<p><code>traceEntry()</code> (Deprecated <code>entry()</code>)</p>
+<p>Troubleshooting without requiring a debugging session</p>
 </li>
 <li>
-<p><code>traceExit()</code> (Deprecated: <code>exit()</code>)</p>
-</li>
-<li>
-<p><code>throwing()</code></p>
-</li>
-<li>
-<p><code>catching()</code></p>
+<p>Helping educate new developers in learning the application</p>
 </li>
 </ul>
 </div>
-<div class="paragraph">
-<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>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>
+<h2 id="usage"><a class="anchor" href="#usage"></a>Usage</h2>
 <div class="sectionbody">
 <div class="paragraph">
-<p>The methods often used are <code>traceEntry()</code> and 
<code>traceExit()</code>.
-As the name suggests, the "entry" method is used at the beginning and the 
"exit" method at the end of a method.</p>
+<p><a 
href="../javadoc/log4j-api/org/apache/logging/log4j/Logger.html"><code>Logger</code></a>
 provides following methods for flow tracing purposes:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>traceEntry()</code></dt>
+<dd>
+<p>Marks the entry to a block</p>
+</dd>
+<dt class="hdlist1"><code>traceExit()</code></dt>
+<dd>
+<p>Marks the exit from a block</p>
+</dd>
+<dt class="hdlist1"><code>catching()</code></dt>
+<dd>
+<p>Reports caught exceptions</p>
+</dd>
+<dt class="hdlist1"><code>throwing()</code></dt>
+<dd>
+<p>Reports exceptions that are either discarded or unlikely to be handled</p>
+</dd>
+</dl>
 </div>
-<div class="listingblock">
+<div class="paragraph">
+<p>The most used <code>traceEntry()</code> and <code>traceExit()</code> 
methods are intended to mark the <em>entry</em> and <em>exit</em> points of a 
particular block of code:</p>
+</div>
+<div id="example-trace" class="listingblock">
+<div class="title">Example <code>traceEntry()</code> and 
<code>traceExit()</code> usage</div>
 <div class="content">
 <pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod() {
-    logger.traceEntry(); <i class="conum" data-value="1"></i><b>(1)</b>
+    LOGGER.traceEntry(); <i class="conum" data-value="1"></i><b>(1)</b>
     // method body
-    logger.traceExit(); <i class="conum" data-value="2"></i><b>(2)</b>
+    LOGGER.traceExit(); <i class="conum" data-value="2"></i><b>(2)</b>
 }</code></pre>
 </div>
 </div>
@@ -376,24 +383,26 @@ As the name suggests, the "entry" method is used at the 
beginning and the "exit"
 <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>
+<td><code>traceEntry()</code> marks the entry to the block</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>
+<td><code>traceExit()</code> marks the exit from the block</td>
 </tr>
 </table>
 </div>
 <div class="paragraph">
-<p>Developers can call both <code>traceEntry()</code> and 
<code>traceExit()</code> methods with or without parameters.
-In the case of <code>traceEntry()</code>, it makes sense to pass the method 
parameters on as arguments.</p>
+<p>Both <code>traceEntry()</code> and <code>traceExit()</code> also accept 
parameters.
+You can use them to track the input and output of the associated block:</p>
 </div>
-<div class="listingblock">
+<div id="example-trace-args" class="listingblock">
+<div class="title">Example <code>traceEntry()</code> and 
<code>traceExit()</code> usage with arguments</div>
 <div class="content">
-<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod(String param) {
-    logger.traceEntry(param); <i class="conum" data-value="1"></i><b>(1)</b>
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public String someMethod(String input) {
+    logger.traceEntry(null, input); <i class="conum" 
data-value="1"></i><b>(1)</b>
     // method body
-    logger.traceExit(); <i class="conum" data-value="2"></i><b>(2)</b>
+    String output = ...;
+    return logger.traceExit(output); <i class="conum" 
data-value="2"></i><b>(2)</b>
 }</code></pre>
 </div>
 </div>
@@ -401,42 +410,26 @@ In the case of <code>traceEntry()</code>, it makes sense 
to pass the method para
 <table>
 <tr>
 <td><i class="conum" data-value="1"></i><b>1</b></td>
-<td>The <code>traceEntry()</code> method is called at the beginning of the 
method.</td>
+<td><code>traceEntry()</code> marks the entry to the block along with the 
input</td>
 </tr>
 <tr>
 <td><i class="conum" data-value="2"></i><b>2</b></td>
-<td>The <code>traceExit()</code> method is called at the end of the 
method.</td>
-</tr>
-</table>
-</div>
-<div class="paragraph">
-<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>
+<td><code>traceExit()</code> marks the exit from the block along with the 
output</td>
 </tr>
 </table>
 </div>
 <div class="paragraph">
-<p>Very similar, it is possible to use <code>traceExit()</code> with methods 
that return a value.</p>
+<p>The <code>catching()</code> method can be used by an application when it 
catches an exception that it will not rethrow, either explicitly or attached to 
another exception:</p>
 </div>
-<div class="listingblock">
+<div id="example-catching" class="listingblock">
+<div class="title">Example <code>catching()</code> usage</div>
 <div class="content">
-<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public String someMethod() {
-    String result = "Hello";
-    // method body
-    return logger.traceExit(result); <i class="conum" 
data-value="1"></i><b>(1)</b>
+<pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod() {
+    try {
+        // Business logic
+    } catch (Exception error) {
+        logger.catching(error); <i class="conum" data-value="1"></i><b>(1)</b>
+    }
 }</code></pre>
 </div>
 </div>
@@ -444,30 +437,22 @@ In the case of <code>traceEntry()</code>, it makes sense 
to pass the method para
 <table>
 <tr>
 <td><i class="conum" data-value="1"></i><b>1</b></td>
-<td>The <code>traceExit()</code> method can also return a value.</td>
+<td><code>catching()</code> reports the caught exception</td>
 </tr>
 </table>
 </div>
 <div class="paragraph">
-<p>Developers can use the <code>catching()</code> and <code>throwing()</code> 
methods to work with exceptions.</p>
-</div>
-<div class="paragraph">
-<p>The following code shows the <code>catching()</code> method. It will be 
called
-inside the <code>catch</code> block of a try-catch statement.</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 
<code>RuntimeException</code>.
+This will ensure that proper diagnostics are available if needed.</p>
 </div>
-<div class="paragraph">
-<p>The <code>catching()</code> method can be used by an application when it 
catches an
-Exception that it will not rethrow, either explicitly or attached
-to another Exception. The generated logging event will have an 
<code>ERROR</code> level.</p>
-</div>
-<div class="listingblock">
+<div id="example-throwing" class="listingblock">
+<div class="title">Example <code>throwing()</code> usage</div>
 <div class="content">
 <pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod() {
     try {
-        // Let's 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>
+        // Business logic
+    } catch (RuntimeException error) {
+        throw logger.throwing(error); <i class="conum" 
data-value="1"></i><b>(1)</b>
     }
 }</code></pre>
 </div>
@@ -476,21 +461,11 @@ to another Exception. The generated logging event will 
have an <code>ERROR</code
 <table>
 <tr>
 <td><i class="conum" data-value="1"></i><b>1</b></td>
-<td>The <code>catching()</code> method logs exceptions that are caught and not 
rethrown.</td>
+<td><code>thrown()</code> reports the caught exception that is about to be 
rethrown.
+Plus, rethrowing the exception, contrary to <a href="#example-catching">the 
<code>catching()</code> example</a> suppressing the exception.</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>, which will be called
-inside the <code>catch</code> block of a try-catch statement.</p>
-</div>
-<div class="paragraph">
-<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 generated logging event will have an <code>ERROR</code> level.</p>
-</div>
 <div class="listingblock">
 <div class="content">
 <pre class="highlightjs highlight"><code class="language-java hljs" 
data-lang="java">public void someMethod() {
@@ -511,117 +486,383 @@ The generated logging event will have an 
<code>ERROR</code> level.</p>
 </tr>
 </table>
 </div>
+<div class="sect2">
+<h3 id="aop"><a class="anchor" href="#aop"></a>Aspect-oriented programming</h3>
+<div class="paragraph">
+<p>Logging has been a notorious example for demonstrating <a 
href="https://en.wikipedia.org/wiki/Aspect-oriented_programming";>aspect-oriented
 programming</a> (AOP).
+For instance, using AOP, you can inject logging statements to methods that 
match a particular footprint, e.g., all public methods in 
<code>com.mycompany</code> package.
+With a couple of lines of AOP instructions, you can log input and output of 
all matching functions.
+Flow tracing methods fits like a glove to this AOP use case.
+You can see a demonstration of this in <a 
href="https://github.com/apache/logging-log4j-samples/tree/main/log4j-samples-aspectj";>the
 <code>log4j-samples-aspectj</code> project</a> demonstrating how you can 
implement this use case using Log4j API flow methods and Spring Boot AspectJ 
support.</p>
+</div>
+</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>
+<h2 id="impl"><a class="anchor" href="#impl"></a>Implementation</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 begin with "event".</p>
+<p>This section explains how flow tracing is implemented by different logging 
implementations.</p>
+</div>
+<div class="sect2">
+<h3 id="impl-log4j"><a class="anchor" href="#impl-log4j"></a>Log4j Core</h3>
+<div class="paragraph">
+<p>Log4j Core, the reference implementation of Log4j API, implements the flow 
tracing methods such that</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#impl-log4j-log-events">It generates specialized log events</a></p>
+</li>
+<li>
+<p><a href="#impl-log4j-config">Its behaviour is configurable</a></p>
+</li>
+</ul>
 </div>
+<div class="sect3">
+<h4 id="impl-log4j-log-events"><a class="anchor" 
href="#impl-log4j-log-events"></a>Log events</h4>
 <div class="paragraph">
-<p>The table below shows the methods and their unique features.</p>
+<p>Log4j Core implements the flow tracing methods such that the generated log 
events are decorated to accommodate any need to selectively handle them:</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%;">
+<col style="width: 25%;">
+<col style="width: 12.5%;">
+<col style="width: 25%;">
+<col style="width: 37.5%;">
 </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>
+<th class="tableblock halign-left valign-top">Method</th>
+<th class="tableblock halign-left valign-top">Level</th>
+<th class="tableblock halign-left valign-top">Markers</th>
+<th class="tableblock halign-left valign-top">Message</th>
 </tr>
 </thead>
 <tbody>
 <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>TRACE</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>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">DEPRECATED. Accepts 0 to 4 parameters</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a 
href="../javadoc/log4j-api/org/apache/logging/log4j/message/EntryMessage.html"><code>EntryMessage</code></a>
 extending from <a 
href="../javadoc/log4j-api/org/apache/logging/log4j/message/FlowMessage.html"><code>FlowMessage</code></a></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>TRACE</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>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">DEPRECATED.  Can be called with or without 
parameters.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a 
href="../javadoc/log4j-api/org/apache/logging/log4j/message/EntryMessage.html"><code>ExitMessage</code></a>
 extending from <a 
href="../javadoc/log4j-api/org/apache/logging/log4j/message/FlowMessage.html"><code>FlowMessage</code></a></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>ERROR</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>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Plain 
message</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>ERROR</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>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Plain 
message</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="sect3">
+<h4 id="impl-log4j-config"><a class="anchor" 
href="#impl-log4j-config"></a>Configuration</h4>
 <div class="paragraph">
-<p>The following example demonstrates how to configure Log4j to use flow 
tracing.
-Note: While developers should prefer the <code>JsonTemplateLayout</code> in 
production, this example uses <code>PatternLayout</code> for simplicity.</p>
+<p>Flow tracing implementation of Log4j Core can be configured using the 
following system properties:</p>
 </div>
+<div class="sect4">
+<h5 id="log4j2.flowMessageFactory"><a class="anchor" 
href="#log4j2.flowMessageFactory"></a><code>log4j2.flowMessageFactory</code></h5>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Env. 
variable</p></th>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>LOG4J_FLOW_MESSAGE_FACTORY</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p 
class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a 
href="../javadoc/log4j-api/org/apache/logging/log4j/message/FlowMessageFactory.html"><code>Class&lt;?
 extends FlowMessageFactory&gt;</code></a></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default 
value</p></th>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a 
href="../javadoc/log4j-api/org/apache/logging/log4j/message/DefaultFlowMessageFactory.html"><code>DefaultFlowMessageFactory</code></a></p></td>
+</tr>
+</tbody>
+</table>
 <div class="paragraph">
-<p>Two appenders are defined: <code>Console</code> and <code>File</code>.</p>
+<p>Fully qualified class name of a
+<a 
href="../javadoc/log4j-api/org/apache/logging/log4j/message/FlowMessageFactory.html"><code>FlowMessageFactory</code></a>
+implementation to be used by all loggers.</p>
+</div>
+</div>
 </div>
+</div>
+<div class="sect2">
+<h3 id="impl-logback"><a class="anchor" href="#impl-logback"></a>Logback</h3>
 <div class="paragraph">
-<p>The <code>Console</code> appender outputs 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.
-Less severe messages are filtered.</p>
+<p><a href="https://logback.qos.ch";>Logback</a> is another logging 
implementation for the <a href="https://www.slf4j.org";>SLF4J</a> logging API, 
just like Log4j Core is a logging implementation for the <a href="api.html" 
class="xref page">Log4j API</a>.
+Using Log4j-to-SLF4J bridge, Logback can be <a 
href="installation.html#impl-logback" class="xref page">configured to consume 
Log4j API</a>.</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>
+<p>Log4j-to-SLF4J bridge implements flow tracing methods such that log events 
are generated with same <a href="#impl-log4j-log-events">marker and level 
changes of Log4j Core</a>.
+They only differ in generated message types, since SLF4J has no <a 
href="messages.html" class="xref page">extensible message contract</a> like 
Log4j, but plain <code>String</code>-based messages.
+This effectively means Logback also has access to the stated marker and level 
changes while using Log4j API flow tracing methods.</p>
+</div>
+</div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="example"><a class="anchor" href="#example"></a>Example 
configuration</h2>
+<div class="sectionbody">
 <div class="paragraph">
-<p>Both appenders use the already mentioned <code>PatternLayout</code>, which 
includes detailed information such as time, log level, class name, line number, 
and method name.</p>
+<p>In this section, we will share logging implementation configuration 
examples to filter on flow tracing log events.</p>
 </div>
+<div class="sect2">
+<h3 id="example-log4j"><a class="anchor" href="#example-log4j"></a>Log4j 
Core</h3>
 <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>
+<p>Log4j Core is the reference implementation of Log4j API.
+In the example configurations below, we will employ a <a 
href="pattern-layout.html" class="xref page">Pattern Layout</a> depending on 
the associated markers of the log event:</p>
+</div>
+<div id="_tabs_1" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_1_xml" class="tab">
+<p>XML</p>
+</li>
+<li id="_tabs_1_json" class="tab">
+<p>JSON</p>
+</li>
+<li id="_tabs_1_yaml" class="tab">
+<p>YAML</p>
+</li>
+<li id="_tabs_1_properties" class="tab">
+<p>Properties</p>
+</li>
+</ul>
 </div>
+<div id="_tabs_1_xml--panel" class="tabpanel" aria-labelledby="_tabs_1_xml">
 <div class="listingblock">
+<div class="title"><a 
href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examplesmanual/flowtracing/log4j2.xml";>log4j2.xml</a>
 snippet</div>
 <div class="content">
-<pre class="highlightjs highlight"><code class="language-xml hljs" 
data-lang="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;Configuration&gt;
-  &lt;Appenders&gt;
-    &lt;Console name="Console" target="SYSTEM_OUT"&gt;
-      &lt;ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/&gt;
-      &lt;!-- Flow tracing is most useful with a pattern that shows location.
-           Below pattern outputs class, line number and method name. --&gt;
-      &lt;PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - 
%msg%xEx%n"/&gt;
-    &lt;/Console&gt;
-    &lt;File name="log" fileName="target/test.log" append="false"&gt;
-      &lt;PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - 
%msg%xEx%n"/&gt;
-    &lt;/File&gt;
-  &lt;/Appenders&gt;
-  &lt;Loggers&gt;
-    &lt;Root level="trace"&gt;
-      &lt;AppenderRef ref="log"/&gt;
-    &lt;/Root&gt;
-  &lt;/Loggers&gt;
-&lt;/Configuration&gt;</code></pre>
+<pre class="highlightjs highlight"><code class="language-xml hljs" 
data-lang="xml">&lt;MarkerFilter marker="FLOW" onMatch="ACCEPT" 
onMismatch="NEUTRAL"/&gt;<i class="conum" data-value="1"></i><b>(1)</b>
+
+&lt;Appenders&gt;
+  &lt;Console name="CONSOLE"&gt;
+    &lt;PatternLayout&gt;
+      &lt;MarkerPatternSelector defaultPattern="%d %5p [%t] %c{1} -- 
%m%n"&gt;<i class="conum" data-value="2"></i><b>(2)</b>
+        &lt;PatternMatch key="ENTER" pattern="%d %5p [%t] %c{1} =&gt; 
%m%n"/&gt;<i class="conum" data-value="3"></i><b>(3)</b>
+        &lt;PatternMatch key="EXIT" pattern="%d %5p [%t] %c{1} &lt;= 
%m%n"/&gt;<i class="conum" data-value="4"></i><b>(4)</b>
+      &lt;/MarkerPatternSelector&gt;
+    &lt;/PatternLayout&gt;
+  &lt;/Console&gt;
+&lt;/Appenders&gt;</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_json--panel" class="tabpanel" aria-labelledby="_tabs_1_json">
+<div class="listingblock">
+<div class="title"><a 
href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examplesmanual/flowtracing/log4j2.json";>log4j2.json</a>
 snippet</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-json hljs" 
data-lang="json">"MarkerFilter": { <i class="conum" 
data-value="1"></i><b>(1)</b>
+  "marker": "FLOW",
+  "onMatch": "ACCEPT",
+  "onMismatch": "NEUTRAL"
+},
+
+"Appenders": {
+  "Console": {
+    "name": "CONSOLE",
+    "PatternLayout": {
+      "MarkerPatternSelector": {
+        "defaultPattern": "%d %5p [%t] %c{1} -- %m%n",<i class="conum" 
data-value="2"></i><b>(2)</b>
+        "PatternMatch": [
+          {<i class="conum" data-value="3"></i><b>(3)</b>
+            "key": "ENTER",
+            "pattern": "%d %5p [%t] %c{1} =&gt; %m%n"
+          },
+          {<i class="conum" data-value="4"></i><b>(4)</b>
+            "key": "EXIT",
+            "pattern": "%d %5p [%t] %c{1} &lt;= %m%n"
+          }
+        ]
+      }
+    }
+  }
+},</code></pre>
+</div>
 </div>
 </div>
+<div id="_tabs_1_yaml--panel" class="tabpanel" aria-labelledby="_tabs_1_yaml">
+<div class="listingblock">
+<div class="title"><a 
href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examplesmanual/flowtracing/log4j2.yaml";>log4j2.yaml</a>
 snippet</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-yaml hljs" 
data-lang="yaml">MarkerFilter: <i class="conum" data-value="1"></i><b>(1)</b>
+  marker: "FLOW"
+  onMatch: "ACCEPT"
+  onMismatch: "NEUTRAL"
+
+Appenders:
+  Console:
+    name: "CONSOLE"
+    PatternLayout:
+      MarkerPatternSelector:
+      defaultPattern: "%d %5p [%t] %c{1} -- %m%n" <i class="conum" 
data-value="2"></i><b>(2)</b>
+      PatternMatch:
+        - key: "ENTER" <i class="conum" data-value="3"></i><b>(3)</b>
+          pattern: "%d %5p [%t] %c{1} =&gt; %m%n"
+        - key: "EXIT" <i class="conum" data-value="4"></i><b>(4)</b>
+          pattern: "%d %5p [%t] %c{1} &lt;= %m%n"</code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_properties--panel" class="tabpanel" 
aria-labelledby="_tabs_1_properties">
+<div class="listingblock">
+<div class="title"><a 
href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examplesmanual/flowtracing/log4j2.properties";>log4j2.properties</a>
 snippet</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-properties hljs" 
data-lang="properties">filter.0.type = MarkerFilter <i class="conum" 
data-value="1"></i><b>(1)</b>
+filter.0.marker = FLOW
+filter.0.onMatch = ACCEPT
+filter.0.onMismatch = NEUTRAL
+
+appender.0.type = Console
+appender.0.name = CONSOLE
+appender.0.layout.type = PatternLayout
+appender.0.layout.patternSelector.type = MarkerPatternSelector
+appender.0.layout.patternSelector.defaultPattern = "%d %5p [%t] %c{1} -- %m%n 
<i class="conum" data-value="2"></i><b>(2)</b>
+appender.0.layout.patternSelector.properties.0.type = PatternMatch
+appender.0.layout.patternSelector.properties.0.key = ENTER
+appender.0.layout.patternSelector.properties.0.pattern = %d %5p [%t] %c{1} 
=&gt; %m%n <i class="conum" data-value="3"></i><b>(3)</b>
+appender.0.layout.patternSelector.properties.1.type = PatternMatch
+appender.0.layout.patternSelector.properties.1.key = EXIT
+appender.0.layout.patternSelector.properties.1.pattern = %d %5p [%t] %c{1} 
&lt;= %m%n <i class="conum" data-value="4"></i><b>(4)</b></code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>Accepting log events marked with <code>FLOW</code> regardless of their 
level</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="2"></i><b>2</b></td>
+<td>By default, log event messages will be formatted with a <code>--</code> 
prefix</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="3"></i><b>3</b></td>
+<td>Log events marked with <code>ENTER</code> (that is, generated by 
<code>traceEntry()</code>) will have their message formatted with a 
<code>&#8658;</code> prefix</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="4"></i><b>4</b></td>
+<td>Log events marked with <code>EXIT</code> (that is, generated by 
<code>traceExit()</code>) will have their message formatted with a 
<code>&#8656;</code> prefix</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="example-logback"><a class="anchor" 
href="#example-logback"></a>Logback</h3>
 <div class="paragraph">
-<p>By changing the Root logger&#8217;s level to <code>DEBUG</code>, developers 
can reduce the amount of output.</p>
+<p><a href="https://logback.qos.ch";>Logback</a> is another logging 
implementation for the <a href="https://www.slf4j.org";>SLF4J</a> logging API, 
just like Log4j Core is a logging implementation for the <a href="api.html" 
class="xref page">Log4j API</a>.
+Using Log4j-to-SLF4J bridge, Logback can be <a 
href="installation.html#impl-logback" class="xref page">configured to consume 
Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>Below we will use a combination of <code>EvaluatorFilter</code>, 
<code>MarkerFilter</code>, and <code>OnMarkerEvaluator</code> in Logback to 
adapt the formatting pattern of messages written to console based on flow 
tracing specific markers:</p>
+</div>
+<div class="listingblock">
+<div class="title"><a 
href="https://github.com/apache/logging-log4j2/tree/2.x/src/site/antora/modules/ROOT/examplesmanual/flowtracing/logback.xml";>logback.xml</a>
 snippet</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs" 
data-lang="xml">&lt;turboFilter class="MarkerFilter"&gt;<i class="conum" 
data-value="1"></i><b>(1)</b>
+  &lt;Marker&gt;FLOW&lt;/Marker&gt;
+  &lt;OnMatch&gt;ACCEPT&lt;/OnMatch&gt;
+&lt;/turboFilter&gt;
+
+&lt;appender name="CONSOLE_DEFAULT" class="ConsoleAppender"&gt;
+  &lt;filter class="EvaluatorFilter"&gt;<i class="conum" 
data-value="2"></i><b>(2)</b>
+    &lt;evaluator class="OnMarkerEvaluator"&gt;
+      &lt;marker&gt;ENTER&lt;/marker&gt;
+      &lt;marker&gt;EXIT&lt;/marker&gt;
+    &lt;/evaluator&gt;
+    &lt;onMismatch&gt;ACCEPT&lt;/onMismatch&gt;
+    &lt;onMatch&gt;DENY&lt;/onMatch&gt;
+  &lt;/filter&gt;
+  &lt;encoder class="PatternLayoutEncoder"&gt;<i class="conum" 
data-value="3"></i><b>(3)</b>
+    &lt;pattern&gt;&lt;![CDATA[%d %5p [%t] %c{1} -- %m%n]]&gt;&lt;/pattern&gt;
+  &lt;/encoder&gt;
+&lt;/appender&gt;
+
+&lt;appender name="CONSOLE_FLOW_ENTER" class="ConsoleAppender"&gt;
+  &lt;filter class="EvaluatorFilter"&gt;<i class="conum" 
data-value="4"></i><b>(4)</b>
+    &lt;evaluator class="OnMarkerEvaluator"&gt;
+      &lt;marker&gt;ENTER&lt;/marker&gt;
+    &lt;/evaluator&gt;
+    &lt;onMismatch&gt;DENY&lt;/onMismatch&gt;
+    &lt;onMatch&gt;ACCEPT&lt;/onMatch&gt;
+  &lt;/filter&gt;
+  &lt;encoder class="PatternLayoutEncoder"&gt;<i class="conum" 
data-value="5"></i><b>(5)</b>
+    &lt;pattern&gt;&lt;![CDATA[%d %5p [%t] %c{1} =&gt; 
%m%n]]&gt;&lt;/pattern&gt;
+  &lt;/encoder&gt;
+&lt;/appender&gt;
+
+&lt;appender name="CONSOLE_FLOW_EXIT" class="ConsoleAppender"&gt;
+  &lt;filter class="EvaluatorFilter"&gt;<i class="conum" 
data-value="6"></i><b>(6)</b>
+    &lt;evaluator class="OnMarkerEvaluator"&gt;
+      &lt;marker&gt;EXIT&lt;/marker&gt;
+    &lt;/evaluator&gt;
+    &lt;onMismatch&gt;DENY&lt;/onMismatch&gt;
+    &lt;onMatch&gt;ACCEPT&lt;/onMatch&gt;
+  &lt;/filter&gt;
+  &lt;encoder class="PatternLayoutEncoder"&gt;<i class="conum" 
data-value="7"></i><b>(7)</b>
+    &lt;pattern&gt;&lt;![CDATA[%d %5p [%t] %c{1} &lt;= 
%m%n]]&gt;&lt;/pattern&gt;
+  &lt;/encoder&gt;
+&lt;/appender&gt;
+
+&lt;root level="WARN"&gt;
+  &lt;appender-ref ref="CONSOLE_DEFAULT"/&gt;
+  &lt;appender-ref ref="CONSOLE_FLOW_ENTER"/&gt;
+  &lt;appender-ref ref="CONSOLE_FLOW_EXIT"/&gt;
+&lt;/root&gt;</code></pre>
+</div>
+</div>
+<div class="colist arabic">
+<table>
+<tr>
+<td><i class="conum" data-value="1"></i><b>1</b></td>
+<td>Accepting log events marked with <code>FLOW</code> regardless of their 
level</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="2"></i><b>2</b></td>
+<td>In <code>CONSOLE_DEFAULT</code> appender, excluding all log events marked 
with <code>ENTER</code> and <code>EXIT</code></td>
+</tr>
+<tr>
+<td><i class="conum" data-value="3"></i><b>3</b></td>
+<td>In <code>CONSOLE_DEFAULT</code> appender, log event messages will be 
formatted with a <code>-</code> prefix</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="4"></i><b>4</b></td>
+<td>In <code>CONSOLE_FLOW_ENTER</code> appender, accepting only log events 
marked with <code>ENTER</code></td>
+</tr>
+<tr>
+<td><i class="conum" data-value="5"></i><b>5</b></td>
+<td>In <code>CONSOLE_FLOW_ENTER</code> appender, log event messages will be 
formatted with a <code>→</code> prefix</td>
+</tr>
+<tr>
+<td><i class="conum" data-value="6"></i><b>6</b></td>
+<td>In <code>CONSOLE_FLOW_EXIT</code> appender, accepting only log events 
marked with <code>EXIT</code></td>
+</tr>
+<tr>
+<td><i class="conum" data-value="7"></i><b>7</b></td>
+<td>In <code>CONSOLE_FLOW_EXIT</code> appender, log event messages will be 
formatted with a <code>←</code> prefix</td>
+</tr>
+</table>
+</div>
 </div>
 </div>
 </div>
diff --git a/manual/getting-started.html b/manual/getting-started.html
index 18e2a49fc4..748c0cb768 100644
--- a/manual/getting-started.html
+++ b/manual/getting-started.html
@@ -436,7 +436,7 @@ Let&#8217;s briefly explain these concepts:</p>
 <p>A logging API is an interface your code or your dependencies directly logs 
against.
 It is required at compile-time.
 It is implementation agnostic to ensure that your application can write logs, 
but is not tied to a specific logging implementation.
-Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
+Log4j API, <a href="https://www.slf4j.org";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
 </dd>
 </dl>
 </div>
@@ -445,7 +445,7 @@ Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.ora
 <dt class="hdlist1">Logging implementation</dt>
 <dd>
 <p>A logging implementation is only required at runtime and can be changed 
without the need to recompile your software.
-Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch/";>Logback</a> are the most 
well-known logging implementations.</p>
+Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch";>Logback</a> are the most 
well-known logging implementations.</p>
 </dd>
 </dl>
 </div>
@@ -848,7 +848,7 @@ This is the most secure way to format log events and should 
be preferred over th
 <div class="paragraph">
 <p>If your application has (direct or transitive!) dependencies that use 
another logging API, you need to <a href="#logging-bridge">bridge</a> that to 
Log4j.
 This way the foreign logging API calls will effectively be consumed by Log4j 
too.
-<a href="https://www.slf4j.org/";>SLF4J</a> is another logging API used pretty 
common in the wild.
+<a href="https://www.slf4j.org";>SLF4J</a> is another logging API used pretty 
common in the wild.
 (<a href="installation.html" class="xref page">Installation</a> covers all 
supported foreign APIs.)
 Let&#8217;s see how you can use the <code>log4j-slf4j2-impl</code> bridge to 
support SLF4J:</p>
 </div>
@@ -1086,7 +1086,7 @@ Start with adding the <code>log4j-core</code> dependency 
in <strong>test</strong
 <div class="paragraph">
 <p>If your library has (direct or transitive!) dependencies that use another 
logging API, you need to <a href="#logging-bridge">bridge</a> that to Log4j.
 This way the foreign logging API calls will effectively be consumed by Log4j 
too.
-<a href="https://www.slf4j.org/";>SLF4J</a> is another logging API used pretty 
common in the wild.
+<a href="https://www.slf4j.org";>SLF4J</a> is another logging API used pretty 
common in the wild.
 (<a href="installation.html" class="xref page">Installation</a> covers all 
supported foreign APIs.)
 Let&#8217;s see how you can use the <code>log4j-slf4j2-impl</code> bridge to 
support SLF4J:</p>
 </div>
diff --git a/manual/installation.html b/manual/installation.html
index 40f3bf4ab0..7f08a14c98 100644
--- a/manual/installation.html
+++ b/manual/installation.html
@@ -378,7 +378,7 @@ See <a href="#impl-core">Installing Log4j Core</a>.</p>
 <p>A logging API is an interface your code or your dependencies directly logs 
against.
 It is required at compile-time.
 It is implementation agnostic to ensure that your application can write logs, 
but is not tied to a specific logging implementation.
-Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
+Log4j API, <a href="https://www.slf4j.org";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
 </dd>
 </dl>
 </div>
@@ -387,7 +387,7 @@ Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.ora
 <dt class="hdlist1">Logging implementation</dt>
 <dd>
 <p>A logging implementation is only required at runtime and can be changed 
without the need to recompile your software.
-Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch/";>Logback</a> are the most 
well-known logging implementations.</p>
+Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch";>Logback</a> are the most 
well-known logging implementations.</p>
 </dd>
 </dl>
 </div>
@@ -627,9 +627,9 @@ See <a href="#impl-jul">Installing JUL</a> for the 
installation instructions.</p
 </dd>
 <dt class="hdlist1"><code>log4j-to-slf4j</code></dt>
 <dd>
-<p>The bridge that translates Log4j API calls to <a 
href="https://www.slf4j.org/";>SLF4J</a>.
+<p>The bridge that translates Log4j API calls to <a 
href="https://www.slf4j.org";>SLF4J</a>.
 Since currently only
-<a href="https://logback.qos.ch/";>Logback</a> implements SLF4J natively, refer 
to <a href="#impl-logback">Installing Logback</a> for the installation 
instructions.</p>
+<a href="https://logback.qos.ch";>Logback</a> implements SLF4J natively, refer 
to <a href="#impl-logback">Installing Logback</a> for the installation 
instructions.</p>
 </dd>
 </dl>
 </div>
@@ -777,7 +777,7 @@ And if so, which ones?</strong></p>
 <div class="sect4">
 <h5 id="impl-core-bridge-slf4j"><a class="anchor" 
href="#impl-core-bridge-slf4j"></a>Installing SLF4J-to-Log4j bridge</h5>
 <div class="paragraph">
-<p>You can translate <a href="https://www.slf4j.org/";>SLF4J</a> calls to Log4j 
API using the <code>log4j-slf4j2-impl</code> artifact:</p>
+<p>You can translate <a href="https://www.slf4j.org";>SLF4J</a> calls to Log4j 
API using the <code>log4j-slf4j2-impl</code> artifact:</p>
 </div>
 <div id="_tabs_5" class="openblock tabs is-sync is-loading">
 <div class="content">
@@ -1332,7 +1332,7 @@ runtimeOnly 'org.slf4j:slf4j-jdk14:2.0.13' // 
SLF4J-to-JUL bridge</code></pre>
 <div class="sect2">
 <h3 id="impl-logback"><a class="anchor" href="#impl-logback"></a>Installing 
Logback</h3>
 <div class="paragraph">
-<p>To install <a href="https://logback.qos.ch/";>Logback</a> as the logging 
implementation, you only need to add a Log4j-to-SLF4J bridge:</p>
+<p>To install <a href="https://logback.qos.ch";>Logback</a> as the logging 
implementation, you only need to add a Log4j-to-SLF4J bridge:</p>
 </div>
 <div id="_tabs_15" class="openblock tabs is-sync is-loading">
 <div class="content">
diff --git a/manual/pattern-layout.html b/manual/pattern-layout.html
index 9f50d7a0e8..c3a3a84087 100644
--- a/manual/pattern-layout.html
+++ b/manual/pattern-layout.html
@@ -1507,15 +1507,11 @@ See <a href="#ansi-modifiers">Style modifiers</a> for 
the syntax of <code>&lt;st
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>STYLE=default</code></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the 
default style, which is equivalent to the following sequence of directives:
-<code>FATAL=bold red, ERROR=bold red, WARN=yellow, INFO=green, DEBUG=cyan, 
TRACE=black</code>.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Sets the 
default style, which is equivalent to the following sequence of directives: 
<code>FATAL=bold red, ERROR=bold red, WARN=yellow, INFO=green, DEBUG=cyan, 
TRACE=black</code>.</p></td>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>STYLE=logback</code></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Applies 
the style used by
-<a href="https://logback.qos.ch/manual/layouts.html#coloring";>Logback&#8217;s 
<code>%highlight</code> converter</a>,
-which is equivalent to the following sequence of directives:
-<code>FATAL=blink bold red, ERROR=bold red, WARN=red, INFO=blue, DEBUG=normal, 
TRACE=normal</code>.</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Applies 
the style used by <a 
href="https://logback.qos.ch/manual/layouts.html#coloring";>Logback&#8217;s 
<code>%highlight</code> converter</a>, which is equivalent to the following 
sequence of directives: <code>FATAL=blink bold red, ERROR=bold red, WARN=red, 
INFO=blue, DEBUG=normal, TRACE=normal</code>.</p></td>
 </tr>
 </tbody>
 </table>
diff --git a/manual/systemproperties.html b/manual/systemproperties.html
index 52f69ece03..1616eaafe3 100644
--- a/manual/systemproperties.html
+++ b/manual/systemproperties.html
@@ -1946,7 +1946,7 @@ See <a href="webapp.html#use-jndi-context-selector" 
class="xref page">Web applic
 <p>These configuration properties are only used by the Log4j Core and <a 
href="simple-logger.html" class="xref page">Simple Logger</a> implementations 
of Log4j API.</p>
 </div>
 <div class="paragraph">
-<p>The <code>log4j-to-slf4j</code> logging bridge delegates 
<code>ThreadContext</code> calls to the SLF4J <a 
href="https://slf4j.org/api/org/slf4j/MDC.html";>MDC</a> class.</p>
+<p>The <code>log4j-to-slf4j</code> logging bridge delegates 
<code>ThreadContext</code> calls to <a 
href="https://www.slf4j.org/api/org/slf4j/MDC.html";>the SLF4J <code>MDC</code> 
class</a>.</p>
 </div>
 <div class="paragraph">
 <p>The <code>log4j-to-jul</code> logging bridge ignores all 
<code>ThreadContext</code> method calls.</p>
diff --git a/migrate-from-logback.html b/migrate-from-logback.html
index fc2c26d0ab..5a5b5cd670 100644
--- a/migrate-from-logback.html
+++ b/migrate-from-logback.html
@@ -321,7 +321,7 @@
 <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
-<p><a href="https://logback.qos.ch/";>Logback</a> is a logging implementation 
for the <a href="https://www.slf4j.org/";>SLF4J</a> logging API, just like Log4j 
Core is a logging implementation for the <a href="manual/api.html" class="xref 
page">Log4j API</a>.
+<p><a href="https://logback.qos.ch";>Logback</a> is a logging implementation 
for the <a href="https://www.slf4j.org";>SLF4J</a> logging API, just like Log4j 
Core is a logging implementation for the <a href="manual/api.html" class="xref 
page">Log4j API</a>.
 In this page we will guide you through migrating from Logback to Log4j Core as 
your logging implementation.</p>
 </div>
 <div class="admonitionblock tip">
@@ -349,7 +349,7 @@ Please refer to <a href="migrate-from-slf4j.html" 
class="xref page">Migrating fr
 <p>A logging API is an interface your code or your dependencies directly logs 
against.
 It is required at compile-time.
 It is implementation agnostic to ensure that your application can write logs, 
but is not tied to a specific logging implementation.
-Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
+Log4j API, <a href="https://www.slf4j.org";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
 </dd>
 </dl>
 </div>
@@ -358,7 +358,7 @@ Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.ora
 <dt class="hdlist1">Logging implementation</dt>
 <dd>
 <p>A logging implementation is only required at runtime and can be changed 
without the need to recompile your software.
-Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch/";>Logback</a> are the most 
well-known logging implementations.</p>
+Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch";>Logback</a> are the most 
well-known logging implementations.</p>
 </dd>
 </dl>
 </div>
diff --git a/migrate-from-slf4j.html b/migrate-from-slf4j.html
index d43568d2a9..78a0cfb3c5 100644
--- a/migrate-from-slf4j.html
+++ b/migrate-from-slf4j.html
@@ -321,7 +321,7 @@
 <div id="preamble">
 <div class="sectionbody">
 <div class="paragraph">
-<p><a href="https://www.slf4j.org/";>SLF4J</a> is a logging API whose reference 
implementation is <a href="https://logback.qos.ch/";>Logback</a>, just like <a 
href="manual/api.html" class="xref page">Log4j API</a> is a logging API whose 
reference implementation is Log4j Core.
+<p><a href="https://www.slf4j.org";>SLF4J</a> is a logging API whose reference 
implementation is <a href="https://logback.qos.ch";>Logback</a>, just like <a 
href="manual/api.html" class="xref page">Log4j API</a> is a logging API whose 
reference implementation is Log4j Core.
 In this page we will guide you through migrating from SLF4J to Log4j API as 
your logging API.</p>
 </div>
 <div class="admonitionblock tip">
@@ -349,7 +349,7 @@ Please refer to <a href="migrate-from-logback.html" 
class="xref page">Migrating
 <p>A logging API is an interface your code or your dependencies directly logs 
against.
 It is required at compile-time.
 It is implementation agnostic to ensure that your application can write logs, 
but is not tied to a specific logging implementation.
-Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
+Log4j API, <a href="https://www.slf4j.org";>SLF4J</a>, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a 
href="https://commons.apache.org/proper/commons-logging/";>JCL (Apache Commons 
Logging)</a>, <a href="https://openjdk.org/jeps/264";>JPL (Java Platform 
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging";>JBoss 
Logging</a> are major logging APIs.</p>
 </dd>
 </dl>
 </div>
@@ -358,7 +358,7 @@ Log4j API, <a href="https://www.slf4j.org/";>SLF4J</a>, <a 
href="https://docs.ora
 <dt class="hdlist1">Logging implementation</dt>
 <dd>
 <p>A logging implementation is only required at runtime and can be changed 
without the need to recompile your software.
-Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch/";>Logback</a> are the most 
well-known logging implementations.</p>
+Log4j Core, <a 
href="https://docs.oracle.com/en/java/javase/8/core/java-logging-overview.html";>JUL
 (Java Logging)</a>, <a href="https://logback.qos.ch";>Logback</a> are the most 
well-known logging implementations.</p>
 </dd>
 </dl>
 </div>
diff --git a/plugin-reference.html b/plugin-reference.html
index 2445c222e6..1bf88da3e6 100644
--- a/plugin-reference.html
+++ b/plugin-reference.html
@@ -1444,7 +1444,7 @@ Originally developed by Ceki Glc and Anders 
Kristensen.</p>
 </tr>
 <tr>
 <td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>header</code></p></td>
-<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>boolean?</code></p></td>
+<td class="tableblock halign-left valign-top"><p 
class="tableblock"><code>String?</code></p></td>
 <td class="tableblock halign-left valign-top"></td>
 <td class="tableblock halign-left valign-top"><div class="content"></div></td>
 </tr>
@@ -7405,7 +7405,7 @@ However, configurations set up for the 2.0 version of the 
JMS appenders will sti
 <tbody>
 <tr>
 <td class="tableblock halign-left valign-top"></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a 
href="#org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider">NoSqlProvider</a>?</code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a 
href="#org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider">NoSqlProvider</a>?</code></p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div 
class="paragraph">
 <p>Sets the provider.</p>
 </div></div></td>
@@ -16127,10 +16127,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 JSON, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
 </div>
 <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></td>
 </tr>
 <tr>
@@ -17426,10 +17426,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 JSON, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
 </div>
 <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></td>
 </tr>
 <tr>
@@ -17625,10 +17625,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 JSON, 
defaults to "true".</p>
+<p>If "true", includes the stacktrace of any Throwable in the generated data, 
defaults to "true".</p>
 </div>
 <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></td>
 </tr>
 <tr>
@@ -21770,6 +21770,37 @@ toString(), or to output the value of a specific key 
within the property bundle
 <div class="sect2">
 <h3 id="org-apache-logging-log4j_log4j-couchdb"><a class="anchor" 
href="#org-apache-logging-log4j_log4j-couchdb"></a><code>log4j-couchdb</code></h3>
 <div class="sect3">
+<h4 
id="org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider"><a
 class="anchor" 
href="#org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider"></a><code>NoSqlProvider</code></h4>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">Class</dt>
+<dd>
+<p><code>org.apache.logging.log4j.core.appender.nosql.NoSqlProvider</code></p>
+</dd>
+<dt class="hdlist1">Provider</dt>
+<dd>
+<p><code>org.apache.logging.log4j:log4j-couchdb</code></p>
+</dd>
+</dl>
+</div>
+<div class="sect4">
+<h5 
id="org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider_implementations"><a
 class="anchor" 
href="#org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider_implementations"></a>Known
 implementations</h5>
+<div class="ulist">
+<ul>
+<li>
+<p><a 
href="#org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-couchdb-CouchDbProvider">CouchDbProvider</a></p>
+</li>
+<li>
+<p><a 
href="#org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-mongodb-MongoDbProvider">MongoDbProvider</a></p>
+</li>
+<li>
+<p><a 
href="#org-apache-logging-log4j_log4j-mongodb4_org-apache-logging-log4j-mongodb4-MongoDb4Provider">MongoDb4Provider</a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+<div class="sect3">
 <h4 
id="org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-couchdb-CouchDbProvider"><a
 class="anchor" 
href="#org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-couchdb-CouchDbProvider"></a>CouchDB</h4>
 <div class="dlist">
 <dl>
@@ -23904,37 +23935,6 @@ Minimum is 1000.</p>
 <div class="sect2">
 <h3 id="org-apache-logging-log4j_log4j-mongodb"><a class="anchor" 
href="#org-apache-logging-log4j_log4j-mongodb"></a><code>log4j-mongodb</code></h3>
 <div class="sect3">
-<h4 
id="org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider"><a
 class="anchor" 
href="#org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider"></a><code>NoSqlProvider</code></h4>
-<div class="dlist">
-<dl>
-<dt class="hdlist1">Class</dt>
-<dd>
-<p><code>org.apache.logging.log4j.core.appender.nosql.NoSqlProvider</code></p>
-</dd>
-<dt class="hdlist1">Provider</dt>
-<dd>
-<p><code>org.apache.logging.log4j:log4j-mongodb</code></p>
-</dd>
-</dl>
-</div>
-<div class="sect4">
-<h5 
id="org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider_implementations"><a
 class="anchor" 
href="#org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-core-appender-nosql-NoSqlProvider_implementations"></a>Known
 implementations</h5>
-<div class="ulist">
-<ul>
-<li>
-<p><a 
href="#org-apache-logging-log4j_log4j-couchdb_org-apache-logging-log4j-couchdb-CouchDbProvider">CouchDbProvider</a></p>
-</li>
-<li>
-<p><a 
href="#org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-mongodb-MongoDbProvider">MongoDbProvider</a></p>
-</li>
-<li>
-<p><a 
href="#org-apache-logging-log4j_log4j-mongodb4_org-apache-logging-log4j-mongodb4-MongoDb4Provider">MongoDb4Provider</a></p>
-</li>
-</ul>
-</div>
-</div>
-</div>
-<div class="sect3">
 <h4 
id="org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-mongodb-MongoDbProvider"><a
 class="anchor" 
href="#org-apache-logging-log4j_log4j-mongodb_org-apache-logging-log4j-mongodb-MongoDbProvider"></a>MongoDb</h4>
 <div class="dlist">
 <dl>
diff --git a/release-notes.html b/release-notes.html
index 17d16c82eb..c24556ea37 100644
--- a/release-notes.html
+++ b/release-notes.html
@@ -492,7 +492,10 @@
 <p>Update <code>org.apache.logging:logging-parent</code> to version `` (<a 
href="https://github.com/apache/logging-log4j2/pull/2600";>2600</a>)</p>
 </li>
 <li>
-<p>Update <code>org.apache.maven:maven-core</code> to version 
<code>3.9.7</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/2616";>2616</a>)</p>
+<p>Update <code>org.apache.maven:maven-core</code> to version 
<code>3.9.8</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/2668";>2668</a>)</p>
+</li>
+<li>
+<p>Update <code>org.apache.maven.surefire:surefire-junit47</code> to version 
<code>3.3.0</code> (<a 
href="https://github.com/apache/logging-log4j2/pull/2669";>2669</a>)</p>
 </li>
 <li>
 <p>Update <code>org.assertj:assertj-core</code> to version <code>3.26.0</code> 
(<a href="https://github.com/apache/logging-log4j2/pull/2618";>2618</a>)</p>
diff --git a/sitemap.xml b/sitemap.xml
index 138f946335..58d7e067d0 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,242 +2,242 @@
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9";>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/development.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/download.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/faq.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/hibernate.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/index.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/javadoc.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-appserver.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-cassandra.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-couchdb.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-docker.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-flume-ng.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-iostreams.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-jakarta-web.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-spring-boot.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/2.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-spring-cloud-config.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-taglib.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/log4j-web.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/api.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/appenders.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/architecture.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/async.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/cloud.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/compatibility.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/config-intro.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/configuration.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/customconfig.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/customloglevels.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/eventlogging.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/extending.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/filters.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/flowtracing.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/garbagefree.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/getting-started.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/index.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/installation.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/jmx.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 
<loc>https://logging.apache.org/log4j/2.x/manual/json-template-layout.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/layouts.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/logbuilder.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/logsep.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/lookups.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/markers.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/messages.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/migration.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/pattern-layout.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/performance.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/plugins.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/resource-logger.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/scoped-context.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/scripts.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/simple-logger.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/status-logger.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/systemproperties.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/thread-context.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/manual/webapp.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/migrate-from-logback.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/migrate-from-slf4j.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/plugin-reference.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 <url>
 <loc>https://logging.apache.org/log4j/2.x/release-notes.html</loc>
-<lastmod>2024-06-18T12:54:37.687Z</lastmod>
+<lastmod>2024-06-19T11:54:53.525Z</lastmod>
 </url>
 </urlset>

Reply via email to