This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch main-site-stg-out
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/main-site-stg-out by this push:
new b60fc5120d Add website content generated from
`0784be4ff2cddb8267bcb15e5736a9533b3ad2f0`
b60fc5120d is described below
commit b60fc5120d11f693651d4050f3bf07fdfaf99201
Author: ASF Logging Services RM <[email protected]>
AuthorDate: Thu Oct 10 09:07:54 2024 +0000
Add website content generated from
`0784be4ff2cddb8267bcb15e5736a9533b3ad2f0`
---
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 | 7 +-
sitemap.xml | 100 ++++-----
8 files changed, 235 insertions(+), 148 deletions(-)
diff --git a/javadoc/log4j-core/deprecated-list.html
b/javadoc/log4j-core/deprecated-list.html
index 43b5bef753..a4a78cc1e0 100644
--- a/javadoc/log4j-core/deprecated-list.html
+++ b/javadoc/log4j-core/deprecated-list.html
@@ -318,11 +318,11 @@ loadScripts(document, 'script');</script>
</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.pattern.ThrowablePatternConverter<wbr>(String,
String, String[])</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/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 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>
</div>
diff --git a/javadoc/log4j-core/index-all.html
b/javadoc/log4j-core/index-all.html
index 5e4e043083..a497d8efb4 100644
--- a/javadoc/log4j-core/index-all.html
+++ b/javadoc/log4j-core/index-all.html
@@ -6561,7 +6561,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>
@@ -13384,13 +13384,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/util/Throwables.html"
class="type-name-link" title="class in
org.apache.logging.log4j.core.util">Throwables</a> - Class in <a
href="org/apache/logging/log4j/core/util/package-summary.html">org.apache.logging.log4j.core.util</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 cab432f430..53b1a5f13f 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
@@ -1382,7 +1382,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 5ba22a6555..e471ffdb66 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/en/java/javase/17/docs/api/java.base/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/en/java/javase/17/docs/api/java.base/java/lang/String.html"
title="class or interface in java.lang"
class="external-link">String</a> style,
@Nullable <a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/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/en/java/javase/17/docs/api/java.base/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 4fba5c6f07..98d2c718f4 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/en/java/javase/17/docs/api/java.base/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/en/java/javase/17/docs/api/java.base/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/en/java/javase/17/docs/api/java.base/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/en/java/javase/17/docs/api/java.base/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/en/java/javase/17/docs/api/java.base/java/lang/Throwable.html"
title="class or interface in [...]
-<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 d3e46869a8..552b552c70 100644
--- a/manual/pattern-layout.html
+++ b/manual/pattern-layout.html
@@ -502,7 +502,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>
@@ -566,7 +566,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>
@@ -1308,7 +1308,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>
@@ -1317,82 +1317,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">
@@ -1404,49 +1440,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">
@@ -2067,27 +2146,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 7f881b59e0..31be675374 100644
--- a/plugin-reference.html
+++ b/plugin-reference.html
@@ -2667,7 +2667,12 @@ This attribute is ignored if <code>immediateFlush</code>
is set to <code>true</c
<tr>
<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>Property</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="#org-apache-logging-log4j_log4j-core_org-apache-logging-log4j-core-config-Property">Property</a>?</code></p></td>
-<td class="tableblock halign-left valign-top"><div class="content"></div></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div
class="paragraph">
+<p>A generic list of key/value properties</p>
+</div>
+<div class="paragraph">
+<p>The meaning of these properties depends on the component.</p>
+</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"></td>
diff --git a/sitemap.xml b/sitemap.xml
index b388613ee4..5358c821b4 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,202 +2,202 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://logging.apache.org/log4j/3.x/articles.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/components.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/development.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/download.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/faq.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/hibernate.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/index.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/javadoc.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-jul.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-slf4j-impl.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-slf4j2-impl.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-to-jul.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/api.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/database.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/delegating.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/file.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/message-queue.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/network.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/rolling-file.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/architecture.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/async.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/cloud.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/config-intro.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/configuration.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/customconfig.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/dependencyinjection.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/extending.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/filters.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/garbagefree.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/getting-started.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/implementation.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/index.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/installation.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/json-template-layout.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/layouts.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/lookups.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/pattern-layout.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/performance.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/plugins.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/scripts.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/systemproperties.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/usage.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/migrate-from-log4j2.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/migrate-from-logback.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/migrate-from-slf4j.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/plugin-reference.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/release-notes.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/thanks.html</loc>
-<lastmod>2024-10-09T12:47:04.983Z</lastmod>
+<lastmod>2024-10-10T09:07:25.960Z</lastmod>
</url>
</urlset>