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 245da802a4 Add website content generated from
`1e154d446fe9d56046281966c60091f0d5d2f48b`
245da802a4 is described below
commit 245da802a4c6aa94ac114f2001193198f52662e5
Author: ASF Logging Services RM <[email protected]>
AuthorDate: Wed Oct 9 13:58:23 2024 +0000
Add website content generated from
`1e154d446fe9d56046281966c60091f0d5d2f48b`
---
javadoc/log4j-core/deprecated-list.html | 4 +-
javadoc/log4j-core/index-all.html | 6 +-
.../log4j/core/config/class-use/Configuration.html | 2 +-
.../core/pattern/ThrowablePatternConverter.html | 8 +-
.../apache/logging/log4j/core/util/Throwables.html | 9 +-
manual/pattern-layout.html | 247 ++++++++++++++-------
plugin-reference.html | 12 +-
release-notes.html | 85 ++++---
sitemap.xml | 116 +++++-----
9 files changed, 297 insertions(+), 192 deletions(-)
diff --git a/javadoc/log4j-core/deprecated-list.html
b/javadoc/log4j-core/deprecated-list.html
index 15e2a020d1..efb0216ef6 100644
--- a/javadoc/log4j-core/deprecated-list.html
+++ b/javadoc/log4j-core/deprecated-list.html
@@ -780,11 +780,11 @@ loadScripts(document, 'script');</script>
</div>
<div class="col-summary-item-name odd-row-color"><a
href="org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String%5B%5D)">org.apache.logging.log4j.core.pattern.ThrowablePatternConverter<wbr>(String,
String, String[])</a></div>
<div class="col-last odd-row-color">
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
<div class="col-summary-item-name even-row-color"><a
href="org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String%5B%5D,org.apache.logging.log4j.core.config.Configuration)">org.apache.logging.log4j.core.pattern.ThrowablePatternConverter<wbr>(String,
String, String[], Configuration)</a></div>
<div class="col-last even-row-color">
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
<div class="col-summary-item-name odd-row-color"><a
href="org/apache/logging/log4j/core/util/Source.html#%3Cinit%3E(java.net.URI,long)">org.apache.logging.log4j.core.util.Source<wbr>(URI,
long)</a></div>
<div class="col-last odd-row-color">
diff --git a/javadoc/log4j-core/index-all.html
b/javadoc/log4j-core/index-all.html
index ac53dd8f95..b8c925ffbc 100644
--- a/javadoc/log4j-core/index-all.html
+++ b/javadoc/log4j-core/index-all.html
@@ -8538,7 +8538,7 @@ loadScripts(document, 'script');</script>
<dd> </dd>
<dt><a
href="org/apache/logging/log4j/core/util/Throwables.html#getRootCause(java.lang.Throwable)"
class="member-name-link">getRootCause(Throwable)</a> - Static method in class
org.apache.logging.log4j.core.util.<a
href="org/apache/logging/log4j/core/util/Throwables.html" title="class in
org.apache.logging.log4j.core.util">Throwables</a></dt>
<dd>
-<div class="block">Returns the deepest cause of the given
<code>throwable</code>.</div>
+<div class="block">Extracts the deepest exception in the causal chain of the
given <code>throwable</code>.</div>
</dd>
<dt><a
href="org/apache/logging/log4j/core/config/AbstractConfiguration.html#getRootLogger()"
class="member-name-link">getRootLogger()</a> - Method in class
org.apache.logging.log4j.core.config.<a
href="org/apache/logging/log4j/core/config/AbstractConfiguration.html"
title="class in
org.apache.logging.log4j.core.config">AbstractConfiguration</a></dt>
<dd>
@@ -16998,13 +16998,13 @@ loadScripts(document, 'script');</script>
<dt><a
href="org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String%5B%5D)"
class="member-name-link">ThrowablePatternConverter(String, String,
String[])</a> - Constructor for class org.apache.logging.log4j.core.pattern.<a
href="org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html"
title="class in
org.apache.logging.log4j.core.pattern">ThrowablePatternConverter</a></dt>
<dd>
<div class="deprecation-block"><span
class="deprecated-label">Deprecated.</span>
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
</dd>
<dt><a
href="org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html#%3Cinit%3E(java.lang.String,java.lang.String,java.lang.String%5B%5D,org.apache.logging.log4j.core.config.Configuration)"
class="member-name-link">ThrowablePatternConverter(String, String, String[],
Configuration)</a> - Constructor for class
org.apache.logging.log4j.core.pattern.<a
href="org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html"
title="class in org.apache.logging.log4j.core.patter [...]
<dd>
<div class="deprecation-block"><span
class="deprecated-label">Deprecated.</span>
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
</dd>
<dt><a href="org/apache/logging/log4j/core/impl/ThrowableProxy.html"
class="type-name-link" title="class in
org.apache.logging.log4j.core.impl">ThrowableProxy</a> - Class in <a
href="org/apache/logging/log4j/core/impl/package-summary.html">org.apache.logging.log4j.core.impl</a></dt>
diff --git
a/javadoc/log4j-core/org/apache/logging/log4j/core/config/class-use/Configuration.html
b/javadoc/log4j-core/org/apache/logging/log4j/core/config/class-use/Configuration.html
index 4908cde560..d89677cb78 100644
---
a/javadoc/log4j-core/org/apache/logging/log4j/core/config/class-use/Configuration.html
+++
b/javadoc/log4j-core/org/apache/logging/log4j/core/config/class-use/Configuration.html
@@ -2071,7 +2071,7 @@ loadScripts(document, 'script');</script>
@Nullable <a href="../Configuration.html" title="interface in
org.apache.logging.log4j.core.config">Configuration</a> config)</code></div>
<div class="col-last odd-row-color">
<div class="block"><span class="deprecated-label">Deprecated.</span>
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
</div>
</div>
diff --git
a/javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html
b/javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html
index 4e07bea7ac..7ea2619b81 100644
---
a/javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html
+++
b/javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html
@@ -141,7 +141,7 @@ loadScripts(document, 'script');</script>
@Nullable <a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html"
title="class or interface in java.lang"
class="external-link">String</a>[] options)</code></div>
<div class="col-last even-row-color">
<div class="block"><span class="deprecated-label">Deprecated.</span>
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
</div>
<div class="col-first odd-row-color"><code>protected </code></div>
@@ -151,7 +151,7 @@ loadScripts(document, 'script');</script>
@Nullable <a href="../config/Configuration.html" title="interface in
org.apache.logging.log4j.core.config">Configuration</a> config)</code></div>
<div class="col-last odd-row-color">
<div class="block"><span class="deprecated-label">Deprecated.</span>
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
</div>
</div>
@@ -251,7 +251,7 @@ loadScripts(document, 'script');</script>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html"
title="class or interface in java.lang"
class="external-link">String</a> style,
@Nullable <a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html"
title="class or interface in java.lang"
class="external-link">String</a>[] options)</span></div>
<div class="deprecation-block"><span
class="deprecated-label">Deprecated.</span>
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
</section>
</li>
@@ -264,7 +264,7 @@ loadScripts(document, 'script');</script>
@Nullable <a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html"
title="class or interface in java.lang"
class="external-link">String</a>[] options,
@Nullable <a href="../config/Configuration.html" title="interface in
org.apache.logging.log4j.core.config">Configuration</a> config)</span></div>
<div class="deprecation-block"><span
class="deprecated-label">Deprecated.</span>
-<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, Function)</code> instead.</div>
+<div class="deprecation-comment">Use <code>ThrowablePatternConverter(String,
String, String[], Configuration, ThrowablePropertyRendererFactory,
ThrowableStackTraceRendererFactory)</code> instead.</div>
</div>
</section>
</li>
diff --git
a/javadoc/log4j-core/org/apache/logging/log4j/core/util/Throwables.html
b/javadoc/log4j-core/org/apache/logging/log4j/core/util/Throwables.html
index 7ffcc500fa..e3708c1ee6 100644
--- a/javadoc/log4j-core/org/apache/logging/log4j/core/util/Throwables.html
+++ b/javadoc/log4j-core/org/apache/logging/log4j/core/util/Throwables.html
@@ -97,7 +97,7 @@ loadScripts(document, 'script');</script>
<div class="col-first even-row-color method-summary-table
method-summary-table-tab1 method-summary-table-tab4"><code>static <a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html"
title="class or interface in java.lang"
class="external-link">Throwable</a></code></div>
<div class="col-second even-row-color method-summary-table
method-summary-table-tab1 method-summary-table-tab4"><code><a
href="#getRootCause(java.lang.Throwable)"
class="member-name-link">getRootCause</a><wbr>(<a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html"
title="class or interface in java.lang"
class="external-link">Throwable</a> throwable)</code></div>
<div class="col-last even-row-color method-summary-table
method-summary-table-tab1 method-summary-table-tab4">
-<div class="block">Returns the deepest cause of the given
<code>throwable</code>.</div>
+<div class="block">Extracts the deepest exception in the causal chain of the
given <code>throwable</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table
method-summary-table-tab1 method-summary-table-tab4"><code>static
void</code></div>
<div class="col-second odd-row-color method-summary-table
method-summary-table-tab1 method-summary-table-tab4"><code><a
href="#rethrow(java.lang.Throwable)"
class="member-name-link">rethrow</a><wbr>(<a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html"
title="class or interface in java.lang"
class="external-link">Throwable</a> t)</code></div>
@@ -130,12 +130,13 @@ loadScripts(document, 'script');</script>
<section class="detail" id="getRootCause(java.lang.Throwable)">
<h3>getRootCause</h3>
<div class="member-signature"><span class="modifiers">public
static</span> <span class="return-type"><a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html"
title="class or interface in java.lang"
class="external-link">Throwable</a></span> <span
class="element-name">getRootCause</span><wbr><span class="parameters">(<a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html"
title="class or interface in java.lang" class="external-link">Throw [...]
-<div class="block">Returns the deepest cause of the given
<code>throwable</code>.</div>
+<div class="block">Extracts the deepest exception in the causal chain of the
given <code>throwable</code>.
+ Circular references will be handled and ignored.</div>
<dl class="notes">
<dt>Parameters:</dt>
-<dd><code>throwable</code> - the throwable to navigate</dd>
+<dd><code>throwable</code> - a throwable to navigate</dd>
<dt>Returns:</dt>
-<dd>the deepest throwable or the given throwable</dd>
+<dd>the deepest exception in the causal chain</dd>
</dl>
</section>
</li>
diff --git a/manual/pattern-layout.html b/manual/pattern-layout.html
index e98cfede40..e5c2d5489d 100644
--- a/manual/pattern-layout.html
+++ b/manual/pattern-layout.html
@@ -550,7 +550,7 @@ using an
</td>
<td class="content">
<div class="paragraph">
-<p>If the provided pattern does not contain an exception converter and <a
href="#plugin-attr-alwaysWriteExceptions"><code>alwaysWriteExceptions</code></a>
is not disabled, an implicit <a
href="#converter-exception-extended"><code>%xEX</code></a> is appended to the
pattern.</p>
+<p>If the provided pattern does not contain an exception converter and <a
href="#plugin-attr-alwaysWriteExceptions"><code>alwaysWriteExceptions</code></a>
is not disabled, an implicit <a
href="#converter-exception-extended"><code>%xEx</code></a> is appended to the
pattern.</p>
</div>
</td>
</tr>
@@ -614,7 +614,7 @@ If configured, the <code>replace</code> element must
specify the regular express
</tbody>
</table>
<div class="paragraph">
-<p>If <code>true</code> and the user-provided pattern does not contain an
exception converter, an implicit <a
href="#converter-exception-extended"><code>%xEX</code></a> pattern is appended.
+<p>If <code>true</code> and the user-provided pattern does not contain an
exception converter, an implicit <a
href="#converter-exception-extended"><code>%xEx</code></a> pattern is appended.
This means that if you do not include a way to output exceptions in your
pattern, the default exception formatter will be added to the end of the
pattern.
Setting this to <code>false</code> disables this behavior and allows you to
exclude exceptions from your pattern output.</p>
</div>
@@ -1352,7 +1352,7 @@ equalsIgnoreCase{pattern}{test}{substitution}</code></pre>
</div>
</div>
<div class="paragraph">
-<p>For example, <code>%equals{[%marker]}{[]}\{}</code> will replace
<code>[]</code> strings produced by events without markers with an empty
string.</p>
+<p>For example, <code>%equals{[%marker]}{[]}{}</code> will replace
<code>[]</code> strings produced by events without markers with an empty
string.</p>
</div>
<div class="paragraph">
<p>The pattern can be arbitrarily complex and in particular can contain
multiple conversion keywords.</p>
@@ -1361,82 +1361,118 @@
equalsIgnoreCase{pattern}{test}{substitution}</code></pre>
<div class="sect3">
<h4 id="converter-exception"><a class="anchor"
href="#converter-exception"></a>Exception</h4>
<div class="paragraph">
-<p>Outputs the <code>Throwable</code> attached to the log event</p>
+<p>Outputs information extracted from the <code>Throwable</code> attached to
the log event.
+It features two modes:</p>
</div>
-<div class="listingblock">
-<div class="title"><a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html"><code>ThrowablePatternConverter</code></a>
specifier grammar</div>
-<div class="content">
-<pre class="highlightjs highlight"><code class="language-text hljs"
data-lang="text">ex|exception|throwable
- { "none"
- | "full"
- | depth
- | "short"
- | "short.className"
- | "short.fileName"
- | "short.lineNumber"
- | "short.methodName"
- | "short.message"
- | "short.localizedMessage"
- }
- {filters(package,package,...)}
- {suffix(pattern)}
- {separator(separator)}</code></pre>
-</div>
-</div>
-<div class="paragraph">
-<p>By default this will output the full stack trace as one would normally find
with a call to <code>Throwable#printStackTrace()</code>.</p>
-</div>
-<div class="paragraph">
-<p>You can follow the throwable conversion word with an option in the form
<code>%throwable{option}</code>.</p>
-</div>
-<div class="paragraph">
-<p><code>%throwable{short}</code> outputs the first line of the
<code>Throwable</code>.</p>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p><a href="#converter-exception-stack-trace">Rendering the exception stack
trace</a> (the default mode)</p>
+</li>
+<li>
+<p><a href="#converter-exception-property">Extracting an exception
property</a> (message, class name, line number, etc.)</p>
+</li>
+</ol>
</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
<div class="paragraph">
-<p><code>%throwable{short.className}</code> outputs the name of the class
where the exception occurred.</p>
+<p>Exception converter is not garbage-free.</p>
</div>
-<div class="paragraph">
-<p><code>%throwable{short.methodName}</code> outputs the name of the method
where the exception occurred.</p>
+</td>
+</tr>
+</table>
</div>
+<div class="sect4">
+<h5 id="converter-exception-stack-trace"><a class="anchor"
href="#converter-exception-stack-trace"></a>Exception stack trace</h5>
<div class="paragraph">
-<p><code>%throwable{short.fileName}</code> outputs the name of the file
containing the class where the exception occurred.</p>
+<p>In this mode, the exception stack trace will be rendered according to the
configuration provided.</p>
</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
<div class="paragraph">
-<p><code>%throwable{short.lineNumber}</code> outputs the line number of the
file containing the class where the exception occurred.</p>
+<p>All rendered exception stack traces are ensured to be prefixed with a new
line obtained using <code>System.lineSeparator()</code>.</p>
</div>
-<div class="paragraph">
-<p><code>%throwable{short.message}</code> outputs the message.</p>
+</td>
+</tr>
+</table>
</div>
<div class="paragraph">
-<p><code>%throwable{short.localizedMessage}</code> outputs the localized
message.</p>
+<p><a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html"><code>ThrowablePatternConverter</code></a>
specifier grammar <strong>for rendering stack traces</strong>:</p>
</div>
-<div class="paragraph">
-<p><code>%throwable{n}</code> outputs the first <code>n</code> lines of the
stack trace.</p>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-text hljs"
data-lang="text">ex|exception|throwable
+ { "none"
+ | "short"
+ | depth
+ | "full"
+ }
+ {filters(package,package,...)}
+ {separator(text)}
+ {suffix(pattern)}</code></pre>
</div>
-<div class="paragraph">
-<p>Specifying <code>%throwable{none}</code> or <code>%throwable{0}</code>
suppresses output of the exception.</p>
</div>
<div class="paragraph">
-<p>Use <code>{filters(packages)}</code>, where <code>packages</code> is a list
of package names, to suppress matching stack frames from stack traces.</p>
+<p>If this mode is employed without any configuration, the output will be
identical to the one obtained from <code>Throwable#printStackTrace()</code>.</p>
</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>none</code></dt>
+<dd>
+<p>Suppress the output of the converter</p>
+</dd>
+<dt class="hdlist1"><code>short</code></dt>
+<dd>
+<p>Outputs the first line of the stack trace (analogous to
<code>%ex{1}</code>)</p>
+</dd>
+<dt class="hdlist1"><code>depth</code></dt>
+<dd>
+<p>Outputs the first <code>depth</code> lines of the stack trace
(<code>%ex{0}</code> is analogous to <code>%ex{none}</code>)</p>
+</dd>
+<dt class="hdlist1"><code>full</code></dt>
+<dd>
+<p>Outputs the complete stack trace (analogous to no configuration)</p>
+</dd>
+<dt class="hdlist1"><code>filters(package,package,…​)</code></dt>
+<dd>
+<p>Suppresses stack trace elements of classes located in packages whose names
start with the package names provided.
+Suppressed stack trace elements will be denoted in the output.
+For instance, <code>%ex{filters(org.junit)}</code> can be used to suppress
JUnit classes in the rendered stack trace.</p>
+</dd>
+<dt class="hdlist1"><code>separator(text)</code></dt>
+<dt class="hdlist1"><code>suffix(pattern)</code></dt>
+<dd>
+<div class="openblock">
+<div class="content">
<div class="paragraph">
<p>You can change the used line separator in multiple ways:</p>
</div>
<div class="ulist">
<ul>
<li>
-<p>Use <code>{separator(separator)}</code> to set the separator string literal.
+<p>Use <code>separator(text)</code> to set the separator string literal.
It defaults to <code>System.lineSeparator()</code>.
-The contents of <code>separator</code> will be rendered verbatim without being
subject to any processing.</p>
+The contents of <code>text</code> will be rendered verbatim without being
subject to any processing.</p>
</li>
<li>
-<p><code>{suffix(pattern)}</code> is identical to
<code>{separator(separator)}</code> with the exception that the provided
<code>pattern</code> will be processed as a <a href="pattern-layout.html"
class="xref page">Pattern Layout</a> conversion pattern before being rendered.
+<p><code>suffix(pattern)</code> is identical to <code>{separator(text)}</code>
with the exception that the provided <code>pattern</code> will be processed as
a <a href="pattern-layout.html" class="xref page">Pattern Layout</a> conversion
pattern before being rendered.
Exception-rendering directives in the <code>pattern</code> (<code>%ex</code>,
<code>%rEx</code>, etc.) will be discarded.</p>
</li>
</ul>
</div>
<div class="paragraph">
-<p><code>{separator(…​)}</code> and <code>{suffix(pattern)}</code>
get concatenated to produce <em>the effective line separator</em> as
follows:</p>
+<p><code>{separator(text)}</code> and <code>{suffix(pattern)}</code> get
concatenated to produce <em>the effective line separator</em> as follows:</p>
</div>
<div class="listingblock">
<div class="content">
@@ -1448,49 +1484,92 @@ Exception-rendering directives in the
<code>pattern</code> (<code>%ex</code>, <c
}</code></pre>
</div>
</div>
-<div class="admonitionblock warning">
+<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
-<i class="fa icon-warning" title="Warning"></i>
+<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
<div class="paragraph">
-<p>Exception converter is not garbage-free.</p>
+<p>You are strongly advised to avoid using both <code>separator(text)</code>
and <code>suffix(pattern)</code> at the same time; simply use one instead.</p>
</div>
</td>
</tr>
</table>
</div>
</div>
-<div class="sect3">
-<h4 id="converter-exception-extended"><a class="anchor"
href="#converter-exception-extended"></a>Exception (Extended)</h4>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect4">
+<h5 id="converter-exception-property"><a class="anchor"
href="#converter-exception-property"></a>Exception property</h5>
<div class="paragraph">
-<p>The same as <a href="#converter-exception">the <code>exception</code>
converter</a>, but also includes class packaging information</p>
+<p>In this mode, extracted attributes of the <code>Throwable</code> are
injected <em>verbatim</em>.
+That is, no newlines, suffixes, prefixes, etc. will be added.</p>
+</div>
+<div class="paragraph">
+<p><a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html"><code>ThrowablePatternConverter</code></a>
specifier grammar <strong>for extracting properties</strong>:</p>
</div>
<div class="listingblock">
-<div class="title"><a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html"><code>ThrowablePatternConverter</code></a>
specifier grammar</div>
<div class="content">
-<pre class="highlightjs highlight"><code class="language-text hljs"
data-lang="text">xEx|xException|xThrowable
- { "none"
- | "full"
- | depth
- | "short"
- | "short.className"
+<pre class="highlightjs highlight"><code class="language-text hljs"
data-lang="text">ex|exception|throwable
+ { "short.className"
| "short.fileName"
| "short.lineNumber"
| "short.methodName"
| "short.message"
| "short.localizedMessage"
- }
- {filters(package,package,...)}
- {suffix(pattern)}
- {separator(separator)}</code></pre>
+ }</code></pre>
+</div>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>short.className</code></dt>
+<dd>
+<p>Class name of the first stack trace element in the causal chain</p>
+</dd>
+<dt class="hdlist1"><code>short.fileName</code></dt>
+<dd>
+<p>File name of the first stack trace element in the causal chain</p>
+</dd>
+<dt class="hdlist1"><code>short.lineNumber</code></dt>
+<dd>
+<p>Line number of the first stack trace element in the causal chain</p>
+</dd>
+<dt class="hdlist1"><code>short.methodName</code></dt>
+<dd>
+<p>Method name of the first stack trace element in the causal chain</p>
+</dd>
+<dt class="hdlist1"><code>short.message</code></dt>
+<dd>
+<p>Exception message</p>
+</dd>
+<dt class="hdlist1"><code>short.message</code></dt>
+<dd>
+<p>Localized exception message</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="converter-exception-extended"><a class="anchor"
href="#converter-exception-extended"></a>Exception (Extended)</h4>
+<div class="paragraph">
+<p>The same as <a href="#converter-exception">the <code>exception</code>
converter</a>, but additionally includes class packaging information in the
rendered stack traces.</p>
+</div>
+<div class="listingblock">
+<div class="title"><a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/pattern/ExtendedThrowablePatternConverter.html"><code>ExtendedThrowablePatternConverter</code></a>
specifier grammar</div>
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-text hljs"
data-lang="text">xEx|xException|xThrowable
+ [... same as the exception converter grammar ...]</code></pre>
</div>
</div>
<div class="paragraph">
-<p>Different from <a href="#converter-exception">the <code>%throwable</code>
conversion</a>, at the end of each stack element of the exception, a string
containing the name of the JAR file that contains the class or the directory
the class is located in and the <code>Implementation-Version</code> as found in
that JAR’s manifest will be added.
-If the information is uncertain, then the class packaging data will be
preceded by a <code>~</code> (tilde) character.</p>
+<p>Each stack trace element is suffixed with a string containing the name of
the JAR file that contains the class (or the directory the class is located in)
and the <code>Implementation-Version</code> as found in that JAR’s
manifest.
+If the information is uncertain, then the class packaging information will be
preceded by a <code>~</code> (tilde) character.</p>
</div>
</div>
<div class="sect3">
@@ -2111,27 +2190,29 @@ For instance, <code>%replace{%logger
%msg}{\.}{/}</code> will replace all dots i
<div class="sect3">
<h4 id="converter-rootException"><a class="anchor"
href="#converter-rootException"></a>Root exception</h4>
<div class="paragraph">
-<p>The same as <a href="#converter-exception">the <code>exception</code>
converter</a>, but the stack trace is printed starting with the first exception
in the causal chain that was thrown followed by each subsequent wrapping
exception</p>
+<p>Same as <a href="#converter-exception">the <code>exception</code>
converter</a>, but the stack trace causal chain is processed in reverse
order.</p>
</div>
<div class="listingblock">
<div class="title"><a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/pattern/RootThrowablePatternConverter.html"><code>RootThrowablePatternConverter</code></a>
specifier grammar</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-text hljs"
data-lang="text">rEx|rException|rThrowable
- { "none"
- | "full"
- | depth
- | "short"
- | "short.className"
- | "short.fileName"
- | "short.lineNumber"
- | "short.methodName"
- | "short.message"
- | "short.localizedMessage"
- }
- {filters(package,package,...)}
- {suffix(pattern)}
- {separator(separator)}</code></pre>
+ [... same as the exception converter grammar ...]</code></pre>
+</div>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Note that the inverted causal chain will not only affect the stack trace,
but also extracted properties.
+That is, for instance, <code>%rEx{short.className}</code> and
<code>%ex{short.className}</code> might yield different results.</p>
</div>
+</td>
+</tr>
+</table>
</div>
</div>
<div class="sect3">
diff --git a/plugin-reference.html b/plugin-reference.html
index d352815bb7..da0dfc2994 100644
--- a/plugin-reference.html
+++ b/plugin-reference.html
@@ -16133,10 +16133,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>
@@ -17430,10 +17430,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>
@@ -17629,10 +17629,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>
diff --git a/release-notes.html b/release-notes.html
index a0534c4371..fe79b3df7e 100644
--- a/release-notes.html
+++ b/release-notes.html
@@ -352,17 +352,24 @@
<h2 id="release-notes-2-x-x"><a class="anchor"
href="#release-notes-2-x-x"></a>2.x.x</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>This releases contains …​</p>
+<p>This minor release contains bug fixes, behavioral improvements, and a
fully-fledged support for the GraalVM native image generation.</p>
</div>
<div class="sect2">
-<h3 id="_graalvm_reachability_metadata"><a class="anchor"
href="#_graalvm_reachability_metadata"></a>GraalVM reachability metadata</h3>
+<h3 id="release-notes-2-25-0-graalvm"><a class="anchor"
href="#release-notes-2-25-0-graalvm"></a>GraalVM reachability metadata</h3>
<div class="paragraph">
-<p>Log4j Core and all its extension modules have been enhanced with embedded
+<p>Log4j Core and all its extension modules have been enriched with embedded
<a
href="https://www.graalvm.org/latest/reference-manual/native-image/metadata/">GraalVM
reachability metadata</a>.
-This will allow the generation of GraalVM native images out-of-the-box,
without any additional step necessary.</p>
+This allows the generation of GraalVM native images out-of-the-box without any
additional steps.
+See our <a href="#graalvm.adoc" class="xref unresolved">GraalVM guide</a> for
details.</p>
</div>
+</div>
+<div class="sect2">
+<h3 id="release-notes-2-25-0-PL-ex"><a class="anchor"
href="#release-notes-2-25-0-PL-ex"></a>Exception handling in Pattern Layout</h3>
<div class="paragraph">
-<p>See our <a href="#graalvm.adoc" class="xref unresolved">GraalVM guide</a>
for more details.</p>
+<p>Exception handling in <a href="manual/pattern-layout.html" class="xref
page">Pattern Layout</a> went through a major rewrite.
+This effectively helped with fixing some bugs by matching the feature parity
of all exception converters.
+Additionally, rendered stack traces are ensured to be prefixed with a newline,
which used to be a whitespace in earlier versions.
+The support for the <code>{ansi}</code> option in exception converters is
removed too.</p>
</div>
</div>
<div class="sect2">
@@ -385,6 +392,9 @@ This will allow the generation of GraalVM native images
out-of-the-box, without
<li>
<p>Consolidate exception rendering logic and improve circular reference
support in Pattern Layout (<a
href="https://github.com/apache/logging-log4j2/pull/2691">2691</a>)</p>
</li>
+<li>
+<p>Change the whitespace prefixing logic in Pattern Layout (<a
href="https://github.com/apache/logging-log4j2/pull/3045">3045</a>)</p>
+</li>
</ul>
</div>
</div>
@@ -427,12 +437,25 @@ This will allow the generation of GraalVM native images
out-of-the-box, without
<p>Fix <code>getLogger()</code> source incompatibility in Log4j 1 to Log4j 2
API Bridge (i.e., <code>log4j-1.2-api</code>) (<a
href="https://github.com/apache/logging-log4j2/pull/3030">3030</a>)</p>
</li>
<li>
+<p>Fix property extraction from the root exception in Pattern Layout (<a
href="https://github.com/apache/logging-log4j2/pull/3045">3045</a>)</p>
+</li>
+<li>
<p>Avoid surrogate character handling in <code>JsonWriter</code></p>
</li>
</ul>
</div>
</div>
<div class="sect2">
+<h3 id="release-notes-2-x-x-removed"><a class="anchor"
href="#release-notes-2-x-x-removed"></a>Removed</h3>
+<div class="ulist">
+<ul>
+<li>
+<p>Remove support for the <code>{ansi}</code> option in Pattern Layout
exception converters (<a
href="https://github.com/apache/logging-log4j2/pull/3045">3045</a>)</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
<h3 id="release-notes-2-x-x-updated"><a class="anchor"
href="#release-notes-2-x-x-updated"></a>Updated</h3>
<div class="ulist">
<ul>
@@ -568,7 +591,7 @@ This will allow the generation of GraalVM native images
out-of-the-box, without
</dl>
</div>
<div class="paragraph">
-<p>This release contains improvements and changes in several areas of Apache
Log4j:</p>
+<p>This release contains improvements and changes in several areas of
Log4j:</p>
</div>
<div class="sect2">
<h3 id="_log4j_api"><a class="anchor" href="#_log4j_api"></a>Log4j API</h3>
@@ -594,7 +617,7 @@ Check your configuration for typos.</p>
<div class="sect2">
<h3 id="_documentation"><a class="anchor"
href="#_documentation"></a>Documentation</h3>
<div class="paragraph">
-<p>The <a href="index.html" class="xref page">Apache Log4j 2</a> website has
been almost entirely rewritten to provide improved documentation and faster
access to the information you need.</p>
+<p>The project website has been almost entirely rewritten to provide improved
documentation and faster access to the information you need.</p>
</div>
</div>
<div class="sect2">
@@ -1289,12 +1312,12 @@ for details.</p>
<p>The Log4j 2.21.1 API, as well as the other artifacts, maintains binary
compatibility with the previous release.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.21.1 requires Java 8 to run.
+<p>Log4j 2.21.1 requires Java 8 to run.
The build requires JDK 11 and generates reproducible binaries.</p>
</div>
<div class="paragraph">
-<p>For complete information on Apache Log4j 2, including instructions on how
to submit bug reports, patches, get support, or suggestions for improvement, see
-<a href="https://logging.apache.org/log4j/2.x/index.html">the Apache Log4j 2
website</a>.</p>
+<p>For complete information on Log4j 2, including instructions on how to
submit bug reports, patches, get support, or suggestions for improvement, see
+<a href="https://logging.apache.org/log4j/2.x/index.html">the Log4j 2
website</a>.</p>
</div>
<div class="sect2">
<h3 id="release-notes-2-21-1-fixed"><a class="anchor"
href="#release-notes-2-21-1-fixed"></a>Fixed</h3>
@@ -1330,12 +1353,12 @@ which is shared in
<p>The Log4j 2.21.0 API, as well as the other artifacts, maintains binary
compatibility with the previous release.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.21.0 requires Java 8 to run.
+<p>Log4j 2.21.0 requires Java 8 to run.
The build requires JDK 11 and generates reproducible binaries.</p>
</div>
<div class="paragraph">
-<p>For complete information on Apache Log4j 2, including instructions on how
to submit bug reports, patches, get support, or suggestions for improvement, see
-<a href="https://logging.apache.org/log4j/2.x/index.html">the Apache Log4j 2
website</a>.</p>
+<p>For complete information on Log4j 2, including instructions on how to
submit bug reports, patches, get support, or suggestions for improvement, see
+<a href="https://logging.apache.org/log4j/2.x/index.html">the Log4j 2
website</a>.</p>
</div>
<div class="sect2">
<h3 id="_osgi_changes"><a class="anchor" href="#_osgi_changes"></a>OSGi
changes</h3>
@@ -1618,7 +1641,7 @@ See <a
href="https://issues.apache.org/jira/browse/LOG4J2-2975">LOG4J2-2975</a>
<p>The Log4j 2.20.0 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.20.0 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.20.0 requires a minimum of Java 8 to build and run.
Log4j 2.12.4 is the last release to support Java 7.
Log4j 2.3.2 is the last release to support Java 6.
Java 6 and Java 7 are no longer supported by the Log4j team.</p>
@@ -1767,7 +1790,7 @@ See <a
href="https://issues.apache.org/jira/browse/LOG4J2-2975">LOG4J2-2975</a>
<p>The Log4j 2.19.0 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.19.0 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.19.0 requires a minimum of Java 8 to build and run.
Log4j 2.12.4 is the last release to support Java 7.
Log4j 2.3.2 is the last release to support Java 6.
Java 6 and Java 7 are no longer supported by the Log4j team.</p>
@@ -1892,7 +1915,7 @@ See <a
href="https://issues.apache.org/jira/browse/LOG4J2-2975">LOG4J2-2975</a>
<p>The Log4j 2.18.0 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.18.0 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.18.0 requires a minimum of Java 8 to build and run.
Log4j 2.12.4 is the last release to support Java 7.
Log4j 2.3.2 is the last release to support Java 6.
Java 6 and Java 7 are no longer supported by the Log4j team.</p>
@@ -2106,7 +2129,7 @@ See <a
href="https://issues.apache.org/jira/browse/LOG4J2-2975">LOG4J2-2975</a>
<p>The Log4j 2.17.2 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.17.2 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.17.2 requires a minimum of Java 8 to build and run.
Log4j 2.12.4 is the last release to support Java 7.
Log4j 2.3.2 is the last release to support Java 6.
Java 6 and Java 7 are no longer supported by the Log4j team.</p>
@@ -2455,7 +2478,7 @@ See <a
href="https://issues.apache.org/jira/browse/LOG4J2-2975">LOG4J2-2975</a>
<p>The Log4j 2.17.1 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.17.1 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.17.1 requires a minimum of Java 8 to build and run.
Log4j 2.12.2 is the last release to support Java 7.
Java 7 is no longer supported by the Log4j team.</p>
</div>
@@ -2536,7 +2559,7 @@ Recursive evaluation is still allowed while generating
the configuration.</p>
<p>The Log4j 2.17.0 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.17.0 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.17.0 requires a minimum of Java 8 to build and run.
Log4j 2.12.2 is the last release to support Java 7.
Java 7 is no longer supported by the Log4j team.</p>
</div>
@@ -2612,7 +2635,7 @@ This behavior is no longer the default and must be
enabled by specifying <code>%
<p>The Log4j 2.16.0 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.16.0 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.16.0 requires a minimum of Java 8 to build and run.
Log4j 2.12.1 is the last release to support Java 7.
Java 7 is no longer supported by the Log4j team.</p>
</div>
@@ -2718,7 +2741,7 @@ LDAP also no longer supports classes that implement the
<code>Referenceable</cod
<p>The Log4j 2.15.0 API, as well as many core components, maintains binary
compatibility with previous releases.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.15.0 requires a minimum of Java 8 to build and run.
+<p>Log4j 2.15.0 requires a minimum of Java 8 to build and run.
Log4j 2.12.1 is the last release to support Java 7.
Java 7 is no longer supported by the Log4j team.</p>
</div>
@@ -7573,7 +7596,7 @@ It contains several bugfixes and new features.
Log4j 2 requires a minimum of Java 7.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.4.1 requires a minimum of Java 7 to build and run.
+<p>Log4j 2.4.1 requires a minimum of Java 7 to build and run.
Log4j 2.4 and greater requires Java 7, version 2.3 required Java 6.</p>
</div>
<div class="paragraph">
@@ -7682,7 +7705,7 @@ It contains several bugfixes and new features.
As of this release Log4j now requires a minimum of Java 7.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.4 requires a minimum of Java 7 to build and run.
+<p>Log4j 2.4 requires a minimum of Java 7 to build and run.
Log4j 2.4 and greater requires Java 7, version 2.3 required Java 6.</p>
</div>
<div class="paragraph">
@@ -7970,7 +7993,7 @@ The package names and Maven <code>groupId</code> have
been changed to <code>org.
It contains several bugfixes and new features.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.3 requires a minimum of Java 6 to build and run.
+<p>Log4j 2.3 requires a minimum of Java 6 to build and run.
This will be the last release of Log4j 2 to support Java 6.
Future releases will require a minimum of Java 7.</p>
</div>
@@ -8102,7 +8125,7 @@ The package names and Maven <code>groupId</code> have
been changed to <code>org.
It contains several bugfixes and new features.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.2 requires a minimum of Java 6 to build and run.
+<p>Log4j 2.2 requires a minimum of Java 6 to build and run.
Future releases may require a minimum of Java 7.</p>
</div>
<div class="paragraph">
@@ -8246,7 +8269,7 @@ There are two new Maven artifacts in this release:
<code>log4j-jul</code> and <c
Both components are API-based with optional Core features.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.1 requires a minimum of Java 6 to build and run.
+<p>Log4j 2.1 requires a minimum of Java 6 to build and run.
Basic compatibility with Log4j 1.x is provided through the
<code>log4j-1.2-api</code> component, however it does
not implement some of the very implementation specific classes and methods.
The package names and Maven <code>groupId</code> have been changed to
<code>org.apache.logging.log4j</code> to avoid any conflicts with Log4j 1.x.</p>
@@ -8454,7 +8477,7 @@ The package names and Maven <code>groupId</code> have
been changed to <code>org.
<p>This is the third GA release which contains several bugfixes from the
previous release.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.0.2 requires a minimum of Java 6 to build and run.
+<p>Log4j 2.0.2 requires a minimum of Java 6 to build and run.
Basic compatibility with Log4j 1.x is provided through the
<code>log4j-1.2-api</code> component, however it does
not implement some of the very implementation specific classes and methods.
The package names and Maven <code>groupId</code> have been changed to
<code>org.apache.logging.log4j</code> to avoid any conflicts with Log4j 1.x.</p>
@@ -8532,7 +8555,7 @@ The package names and Maven <code>groupId</code> have
been changed to <code>org.
<p>This is the first patch release of Log4j 2.0 which contains numerous bug
fixes.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.0.1 requires a minimum of Java 6 to build and run.
+<p>Log4j 2.0.1 requires a minimum of Java 6 to build and run.
Basic compatibility with Log4j 1.x is provided through the
<code>log4j-1.2-api</code> component, however it does
not implement some of the very implementation specific classes and methods.
The package names and Maven <code>groupId</code> have been changed to
<code>org.apache.logging.log4j</code> to avoid any conflicts with Log4j 1.x.</p>
@@ -8641,14 +8664,14 @@ The package names and Maven <code>groupId</code> have
been changed to <code>org.
<p>This is the first GA release, after thirteen prior releases over the last 4
years.</p>
</div>
<div class="paragraph">
-<p>Apache Log4j 2.0 requires a minimum of Java 6 to build and run.
+<p>Log4j 2.0 requires a minimum of Java 6 to build and run.
Basic compatibility with Log4j 1.x is provided through the
<code>log4j-1.2-api</code> component, however it does not implement some of the
very implementation specific classes and methods.
The package names and Maven <code>groupId</code> have been changed to
<code>org.apache.logging.log4j</code> to avoid any conflicts with Log4j 1.x.</p>
</div>
<div class="paragraph">
-<p>For complete information on Apache Log4j 2, including instructions on how
to submit bug reports,
+<p>For complete information on Log4j 2, including instructions on how to
submit bug reports,
patches, or suggestions for improvement, see
-<a href="https://logging.apache.org/log4j/2.x/index.html">the Apache Log4j 2
website</a>.</p>
+<a href="https://logging.apache.org/log4j/2.x/index.html">the Log4j 2
website</a>.</p>
</div>
<div class="sect2">
<h3 id="release-notes-2-0-added"><a class="anchor"
href="#release-notes-2-0-added"></a>Added</h3>
diff --git a/sitemap.xml b/sitemap.xml
index c34cc62163..058574242a 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,234 +2,234 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://logging.apache.org/log4j/2.x/components.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/development.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/download.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/faq.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/hibernate.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/index.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/jakarta.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/javadoc.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-iostreams.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-jul.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-spring-boot.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/log4j-to-jul.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/api.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/database.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/delegating.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/file.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/message-queue.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/network.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/appenders/rolling-file.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/architecture.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/async.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/compatibility.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/config-intro.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/configuration.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/customconfig.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/customloglevels.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/eventlogging.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/extending.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/filters.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/flowtracing.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/garbagefree.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/getting-started.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/implementation.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/index.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/installation.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/jmx.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/json-template-layout.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/layouts.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/logbuilder.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/lookups.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/markers.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/messages.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/pattern-layout.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/performance.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/plugins.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/scripts.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/simple-logger.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/status-logger.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/systemproperties.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/manual/thread-context.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/migrate-from-log4j1.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/migrate-from-logback.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/migrate-from-slf4j.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/plugin-reference.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/release-notes.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/2.x/soa.html</loc>
-<lastmod>2024-10-09T13:10:00.901Z</lastmod>
+<lastmod>2024-10-09T13:57:53.420Z</lastmod>
</url>
</urlset>