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 3d85308614 Add website content generated from
`14f25a491097208cf4b8fef6ccd65062892261aa`
3d85308614 is described below
commit 3d85308614a0298bb9db557fcf390b39de333a66
Author: ASF Logging Services RM <[email protected]>
AuthorDate: Tue Oct 22 17:02:59 2024 +0000
Add website content generated from
`14f25a491097208cf4b8fef6ccd65062892261aa`
---
articles.html | 2 +-
components.html | 386 +++++++++++++++----------
development.html | 2 +-
download.html | 2 +-
faq.html | 2 +-
hibernate.html | 2 +-
index.html | 2 +-
javadoc.html | 2 +-
log4j-jul.html | 510 +++++++++++++++++++++++++++-------
log4j-slf4j-impl.html | 2 +-
log4j-slf4j2-impl.html | 2 +-
log4j-spring-cloud-config-client.html | 2 +-
log4j-to-jul.html | 2 +-
manual/api.html | 2 +-
manual/appenders.html | 2 +-
manual/appenders/database.html | 2 +-
manual/appenders/delegating.html | 2 +-
manual/appenders/file.html | 2 +-
manual/appenders/message-queue.html | 2 +-
manual/appenders/network.html | 2 +-
manual/appenders/rolling-file.html | 2 +-
manual/architecture.html | 2 +-
manual/async.html | 2 +-
manual/cloud.html | 2 +-
manual/config-intro.html | 2 +-
manual/configuration.html | 2 +-
manual/customconfig.html | 2 +-
manual/dependencyinjection.html | 2 +-
manual/extending.html | 2 +-
manual/filters.html | 2 +-
manual/garbagefree.html | 2 +-
manual/getting-started.html | 2 +-
manual/implementation.html | 2 +-
manual/index.html | 2 +-
manual/installation.html | 8 +-
manual/json-template-layout.html | 2 +-
manual/layouts.html | 2 +-
manual/lookups.html | 2 +-
manual/pattern-layout.html | 2 +-
manual/performance.html | 2 +-
manual/plugins.html | 2 +-
manual/scripts.html | 2 +-
manual/systemproperties.html | 82 ++++--
manual/usage.html | 2 +-
migrate-from-log4j2.html | 2 +-
migrate-from-logback.html | 2 +-
migrate-from-slf4j.html | 2 +-
plugin-reference.html | 2 +-
release-notes.html | 2 +-
sitemap.xml | 100 +++----
thanks.html | 2 +-
51 files changed, 796 insertions(+), 382 deletions(-)
diff --git a/articles.html b/articles.html
index 3eb15e139d..0210778cf0 100644
--- a/articles.html
+++ b/articles.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/components.html b/components.html
index f600ec776d..4c1c76a31c 100644
--- a/components.html
+++ b/components.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
@@ -307,11 +307,46 @@
</div>
</div>
<div class="sect1">
-<h2 id="log4j-bom"><a class="anchor"
href="#log4j-bom"></a><code>log4j-bom</code></h2>
+<h2 id="jul-to-log4j"><a class="anchor"
href="#jul-to-log4j"></a><code>jul-to-log4j</code></h2>
<div class="sectionbody">
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 100%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">JPMS
module</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.jul.tolog4j</code></p></td>
+</tr>
+</tbody>
+</table>
<div class="paragraph">
-<p>A public Bill-of-Materials that manages all the versions of Log4j artifacts.
-You can import the BOM in your build tool of preference:</p>
+<p>The <code>jul-to-log4j</code> artifact contains a bridge from
+<a
href="https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html"><code>java.util.logging</code></a>
+to the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
+</div>
+<div class="paragraph">
+<p>See
+<a href="manual/installation.html#impl-core-bridge-jul" class="xref
page">Installing the JUL-to-Log4j API bridge</a>
+on how to install it or
+<a href="log4j-jul.html#bridge-logmanager" class="xref page">Using
<code>j.u.l.LogManager</code></a>
+for more details.</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>Don’t deploy this artifact together with <a
href="#log4j-to-jul"><code>log4j-to-jul</code></a>.</p>
+</div>
+</td>
+</tr>
+</table>
</div>
<div id="_tabs_1" class="openblock tabs is-sync is-loading">
<div class="content">
@@ -326,6 +361,53 @@ You can import the BOM in your build tool of
preference:</p>
</ul>
</div>
<div id="_tabs_1_maven--panel" class="tabpanel"
aria-labelledby="_tabs_1_maven">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-xml hljs"
data-lang="xml"><dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>jul-to-log4j</artifactId>
+ <scope>runtime</scope>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_1_gradle">
+<div class="paragraph">
+<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">runtimeOnly
'org.apache.logging.log4j:jul-to-log4j'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="log4j-bom"><a class="anchor"
href="#log4j-bom"></a><code>log4j-bom</code></h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>A public Bill-of-Materials that manages all the versions of Log4j artifacts.
+You can import the BOM in your build tool of preference:</p>
+</div>
+<div id="_tabs_2" class="openblock tabs is-sync is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_2_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_2_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_2_maven--panel" class="tabpanel"
aria-labelledby="_tabs_2_maven">
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs"
data-lang="xml"><dependencyManagement>
@@ -342,7 +424,7 @@ You can import the BOM in your build tool of preference:</p>
</div>
</div>
</div>
-<div id="_tabs_1_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_1_gradle">
+<div id="_tabs_2_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_2_gradle">
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">dependencies {
@@ -399,19 +481,19 @@ Use <a href="#log4j-bom"><code>log4j-bom</code></a>
instead.</p>
<div class="paragraph">
<p>See <a href="manual/async.html" class="xref page">asynchronous loggers</a>
for more details.</p>
</div>
-<div id="_tabs_2" class="openblock tabs is-sync is-loading">
+<div id="_tabs_3" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_2_maven" class="tab">
+<li id="_tabs_3_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_2_gradle" class="tab">
+<li id="_tabs_3_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_2_maven--panel" class="tabpanel"
aria-labelledby="_tabs_2_maven">
+<div id="_tabs_3_maven--panel" class="tabpanel"
aria-labelledby="_tabs_3_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -425,7 +507,7 @@ Use <a href="#log4j-bom"><code>log4j-bom</code></a>
instead.</p>
</div>
</div>
</div>
-<div id="_tabs_2_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_2_gradle">
+<div id="_tabs_3_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_3_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -461,19 +543,19 @@ Having this artifact in the classpath makes these
automatically accessible to
See
<a href="manual/appenders/rolling-file.html#RolloverStrategy-compress-commons"
class="xref page">Compressing archived files</a> for more details.</p>
</div>
-<div id="_tabs_3" class="openblock tabs is-sync is-loading">
+<div id="_tabs_4" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_3_maven" class="tab">
+<li id="_tabs_4_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_3_gradle" class="tab">
+<li id="_tabs_4_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_3_maven--panel" class="tabpanel"
aria-labelledby="_tabs_3_maven">
+<div id="_tabs_4_maven--panel" class="tabpanel"
aria-labelledby="_tabs_4_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -487,7 +569,7 @@ See
</div>
</div>
</div>
-<div id="_tabs_3_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_3_gradle">
+<div id="_tabs_4_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_4_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -528,19 +610,19 @@ plugins based on
<div class="paragraph">
<p>See <a href="manual/extending.html#ConfigurationFactory" class="xref
page">Extending <code>ConfigurationFactory</code></a> for more details on how
to create your own configuration file formats.</p>
</div>
-<div id="_tabs_4" class="openblock tabs is-sync is-loading">
+<div id="_tabs_5" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_4_maven" class="tab">
+<li id="_tabs_5_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_4_gradle" class="tab">
+<li id="_tabs_5_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_4_maven--panel" class="tabpanel"
aria-labelledby="_tabs_4_maven">
+<div id="_tabs_5_maven--panel" class="tabpanel"
aria-labelledby="_tabs_5_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -553,7 +635,7 @@ plugins based on
</div>
</div>
</div>
-<div id="_tabs_4_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_4_gradle">
+<div id="_tabs_5_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_5_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -588,19 +670,19 @@ plugins based on
<div class="paragraph">
<p>See <a href="manual/configuration.html#configuration-factories" class="xref
page">predefined <code>ConfigurationFactory</code> plugins</a> for more
details.</p>
</div>
-<div id="_tabs_5" class="openblock tabs is-sync is-loading">
+<div id="_tabs_6" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_5_maven" class="tab">
+<li id="_tabs_6_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_5_gradle" class="tab">
+<li id="_tabs_6_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_5_maven--panel" class="tabpanel"
aria-labelledby="_tabs_5_maven">
+<div id="_tabs_6_maven--panel" class="tabpanel"
aria-labelledby="_tabs_6_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -614,7 +696,7 @@ plugins based on
</div>
</div>
</div>
-<div id="_tabs_5_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_5_gradle">
+<div id="_tabs_6_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_6_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -649,19 +731,19 @@ plugins based on
<div class="paragraph">
<p>See <a href="manual/configuration.html#configuration-factories" class="xref
page">predefined <code>ConfigurationFactory</code> plugins</a> for more
details.</p>
</div>
-<div id="_tabs_6" class="openblock tabs is-sync is-loading">
+<div id="_tabs_7" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_6_maven" class="tab">
+<li id="_tabs_7_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_6_gradle" class="tab">
+<li id="_tabs_7_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_6_maven--panel" class="tabpanel"
aria-labelledby="_tabs_6_maven">
+<div id="_tabs_7_maven--panel" class="tabpanel"
aria-labelledby="_tabs_7_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -675,7 +757,7 @@ plugins based on
</div>
</div>
</div>
-<div id="_tabs_6_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_6_gradle">
+<div id="_tabs_7_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_7_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -714,19 +796,19 @@ that uses
<div class="paragraph">
<p>See <a
href="manual/appenders/delegating.html#DisruptorBlockingQueueFactory"
class="xref page">Conversant Disruptor Blocking Queue</a> for more details.</p>
</div>
-<div id="_tabs_7" class="openblock tabs is-sync is-loading">
+<div id="_tabs_8" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_7_maven" class="tab">
+<li id="_tabs_8_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_7_gradle" class="tab">
+<li id="_tabs_8_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_7_maven--panel" class="tabpanel"
aria-labelledby="_tabs_7_maven">
+<div id="_tabs_8_maven--panel" class="tabpanel"
aria-labelledby="_tabs_8_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -740,7 +822,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_7_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_7_gradle">
+<div id="_tabs_8_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_8_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -775,19 +857,19 @@ that uses
<div class="paragraph">
<p>See <a href="manual/implementation.html" class="xref page">Reference
implementation</a> for more details.</p>
</div>
-<div id="_tabs_8" class="openblock tabs is-sync is-loading">
+<div id="_tabs_9" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_8_maven" class="tab">
+<li id="_tabs_9_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_8_gradle" class="tab">
+<li id="_tabs_9_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_8_maven--panel" class="tabpanel"
aria-labelledby="_tabs_8_maven">
+<div id="_tabs_9_maven--panel" class="tabpanel"
aria-labelledby="_tabs_9_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -801,7 +883,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_8_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_8_gradle">
+<div id="_tabs_9_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_9_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -833,19 +915,19 @@ that uses
<div class="paragraph">
<p>The <code>log4j-core-test</code> artifact contains test fixtures useful to
<a href="manual/extending.html" class="xref page">extend the reference
implementation</a>.</p>
</div>
-<div id="_tabs_9" class="openblock tabs is-sync is-loading">
+<div id="_tabs_10" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_9_maven" class="tab">
+<li id="_tabs_10_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_9_gradle" class="tab">
+<li id="_tabs_10_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_9_maven--panel" class="tabpanel"
aria-labelledby="_tabs_9_maven">
+<div id="_tabs_10_maven--panel" class="tabpanel"
aria-labelledby="_tabs_10_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -859,7 +941,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_9_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_9_gradle">
+<div id="_tabs_10_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_10_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -895,19 +977,19 @@ that uses
</tr>
</tbody>
</table>
-<div id="_tabs_10" class="openblock tabs is-sync is-loading">
+<div id="_tabs_11" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_10_maven" class="tab">
+<li id="_tabs_11_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_10_gradle" class="tab">
+<li id="_tabs_11_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_10_maven--panel" class="tabpanel"
aria-labelledby="_tabs_10_maven">
+<div id="_tabs_11_maven--panel" class="tabpanel"
aria-labelledby="_tabs_11_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -921,7 +1003,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_10_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_10_gradle">
+<div id="_tabs_11_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_11_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -957,19 +1039,19 @@ that uses
<div class="paragraph">
<p>See <a href="manual/lookups.html#DockerLookup" class="xref page">Docker
lookup</a> for more information.</p>
</div>
-<div id="_tabs_11" class="openblock tabs is-sync is-loading">
+<div id="_tabs_12" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_11_maven" class="tab">
+<li id="_tabs_12_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_11_gradle" class="tab">
+<li id="_tabs_12_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_11_maven--panel" class="tabpanel"
aria-labelledby="_tabs_11_maven">
+<div id="_tabs_12_maven--panel" class="tabpanel"
aria-labelledby="_tabs_12_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -983,7 +1065,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_11_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_11_gradle">
+<div id="_tabs_12_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_12_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1022,19 +1104,19 @@ log data collection service.</p>
<a href="manual/appenders/message-queue.html#FlumeAppender" class="xref
page">Flume Appender</a>
for more information.</p>
</div>
-<div id="_tabs_12" class="openblock tabs is-sync is-loading">
+<div id="_tabs_13" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_12_maven" class="tab">
+<li id="_tabs_13_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_12_gradle" class="tab">
+<li id="_tabs_13_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_12_maven--panel" class="tabpanel"
aria-labelledby="_tabs_12_maven">
+<div id="_tabs_13_maven--panel" class="tabpanel"
aria-labelledby="_tabs_13_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1048,7 +1130,7 @@ for more information.</p>
</div>
</div>
</div>
-<div id="_tabs_12_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_12_gradle">
+<div id="_tabs_13_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_13_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1087,19 +1169,19 @@ that uses
<div class="paragraph">
<p>See <a href="manual/appenders/delegating.html#JCToolsBlockingQueueFactory"
class="xref page">JCTools Blocking Queue</a> for more details.</p>
</div>
-<div id="_tabs_13" class="openblock tabs is-sync is-loading">
+<div id="_tabs_14" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_13_maven" class="tab">
+<li id="_tabs_14_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_13_gradle" class="tab">
+<li id="_tabs_14_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_13_maven--panel" class="tabpanel"
aria-labelledby="_tabs_13_maven">
+<div id="_tabs_14_maven--panel" class="tabpanel"
aria-labelledby="_tabs_14_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1113,7 +1195,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_13_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_13_gradle">
+<div id="_tabs_14_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_14_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1149,19 +1231,19 @@ that uses
<div class="paragraph">
<p>See <a href="manual/appenders/database.html#JdbcAppender" class="xref
page">JDBC Appender</a> for more details.</p>
</div>
-<div id="_tabs_14" class="openblock tabs is-sync is-loading">
+<div id="_tabs_15" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_14_maven" class="tab">
+<li id="_tabs_15_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_14_gradle" class="tab">
+<li id="_tabs_15_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_14_maven--panel" class="tabpanel"
aria-labelledby="_tabs_14_maven">
+<div id="_tabs_15_maven--panel" class="tabpanel"
aria-labelledby="_tabs_15_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1175,7 +1257,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_14_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_14_gradle">
+<div id="_tabs_15_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_15_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1214,19 +1296,19 @@ that uses
<div class="paragraph">
<p>See <a href="manual/appenders/database.html#DataSourceConnectionSource"
class="xref page"><code>DataSource</code> connection source</a> for more
details.</p>
</div>
-<div id="_tabs_15" class="openblock tabs is-sync is-loading">
+<div id="_tabs_16" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_15_maven" class="tab">
+<li id="_tabs_16_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_15_gradle" class="tab">
+<li id="_tabs_16_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_15_maven--panel" class="tabpanel"
aria-labelledby="_tabs_15_maven">
+<div id="_tabs_16_maven--panel" class="tabpanel"
aria-labelledby="_tabs_16_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1240,7 +1322,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_15_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_15_gradle">
+<div id="_tabs_16_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_16_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1279,19 +1361,19 @@ that uses
<div class="paragraph">
<p>See <a href="manual/appenders/database.html#PoolingDriverConnectionSource"
class="xref page"><code>PoolingDriver</code> connection source</a> for more
details.</p>
</div>
-<div id="_tabs_16" class="openblock tabs is-sync is-loading">
+<div id="_tabs_17" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_16_maven" class="tab">
+<li id="_tabs_17_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_16_gradle" class="tab">
+<li id="_tabs_17_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_16_maven--panel" class="tabpanel"
aria-labelledby="_tabs_16_maven">
+<div id="_tabs_17_maven--panel" class="tabpanel"
aria-labelledby="_tabs_17_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1305,7 +1387,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_16_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_16_gradle">
+<div id="_tabs_17_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_17_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1354,19 +1436,19 @@ that uses
</li>
</ul>
</div>
-<div id="_tabs_17" class="openblock tabs is-sync is-loading">
+<div id="_tabs_18" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_17_maven" class="tab">
+<li id="_tabs_18_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_17_gradle" class="tab">
+<li id="_tabs_18_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_17_maven--panel" class="tabpanel"
aria-labelledby="_tabs_17_maven">
+<div id="_tabs_18_maven--panel" class="tabpanel"
aria-labelledby="_tabs_18_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1380,7 +1462,7 @@ that uses
</div>
</div>
</div>
-<div id="_tabs_17_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_17_gradle">
+<div id="_tabs_18_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_18_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1418,19 +1500,19 @@ to the <a href="manual/api.html" class="xref
page">Log4j API</a>.</p>
<div class="paragraph">
<p>See <a href="manual/installation.html#impl-core-bridge-jpl" class="xref
page">Installing the JPL-to-Log4j API bridge</a> for more details.</p>
</div>
-<div id="_tabs_18" class="openblock tabs is-sync is-loading">
+<div id="_tabs_19" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_18_maven" class="tab">
+<li id="_tabs_19_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_18_gradle" class="tab">
+<li id="_tabs_19_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_18_maven--panel" class="tabpanel"
aria-labelledby="_tabs_18_maven">
+<div id="_tabs_19_maven--panel" class="tabpanel"
aria-labelledby="_tabs_19_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1444,7 +1526,7 @@ to the <a href="manual/api.html" class="xref page">Log4j
API</a>.</p>
</div>
</div>
</div>
-<div id="_tabs_18_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_18_gradle">
+<div id="_tabs_19_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_19_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1475,12 +1557,12 @@ to the <a href="manual/api.html" class="xref
page">Log4j API</a>.</p>
</tbody>
</table>
<div class="paragraph">
-<p>The <code>log4j-jul</code> artifact contains a bridge from
+<p>The <code>log4j-jul</code> artifact contains an alternative bridge from
<a
href="https://docs.oracle.com/javase/8/docs/api/java/util/logging/package-summary.html"><code>java.util.logging</code></a>
to the <a href="manual/api.html" class="xref page">Log4j API</a>.</p>
</div>
<div class="paragraph">
-<p>See <a href="manual/installation.html#impl-core-bridge-jul" class="xref
page">Installing the JUL-to-Log4j API bridge</a> for more details.</p>
+<p>See <a href="log4j-jul.html#bridge-handler" class="xref page">Using
<code>j.u.l.Handler</code></a> for more details.</p>
</div>
<div class="admonitionblock important">
<table>
@@ -1496,19 +1578,19 @@ to the <a href="manual/api.html" class="xref
page">Log4j API</a>.</p>
</tr>
</table>
</div>
-<div id="_tabs_19" class="openblock tabs is-sync is-loading">
+<div id="_tabs_20" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_19_maven" class="tab">
+<li id="_tabs_20_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_19_gradle" class="tab">
+<li id="_tabs_20_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_19_maven--panel" class="tabpanel"
aria-labelledby="_tabs_19_maven">
+<div id="_tabs_20_maven--panel" class="tabpanel"
aria-labelledby="_tabs_20_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1522,7 +1604,7 @@ to the <a href="manual/api.html" class="xref page">Log4j
API</a>.</p>
</div>
</div>
</div>
-<div id="_tabs_19_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_19_gradle">
+<div id="_tabs_20_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_20_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1559,19 +1641,19 @@ to the <a href="manual/api.html" class="xref
page">Log4j API</a>.</p>
<div class="paragraph">
<p><a href="#log4j-core">Log4j Core 3</a> is based on this artifact.</p>
</div>
-<div id="_tabs_20" class="openblock tabs is-sync is-loading">
+<div id="_tabs_21" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_20_maven" class="tab">
+<li id="_tabs_21_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_20_gradle" class="tab">
+<li id="_tabs_21_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_20_maven--panel" class="tabpanel"
aria-labelledby="_tabs_20_maven">
+<div id="_tabs_21_maven--panel" class="tabpanel"
aria-labelledby="_tabs_21_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1585,7 +1667,7 @@ to the <a href="manual/api.html" class="xref page">Log4j
API</a>.</p>
</div>
</div>
</div>
-<div id="_tabs_20_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_20_gradle">
+<div id="_tabs_21_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_21_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1623,19 +1705,19 @@ to format log events as JSON.</p>
<div class="paragraph">
<p>See <a href="manual/json-template-layout.html" class="xref page">JSON
Template Layout</a> for details.</p>
</div>
-<div id="_tabs_21" class="openblock tabs is-sync is-loading">
+<div id="_tabs_22" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_21_maven" class="tab">
+<li id="_tabs_22_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_21_gradle" class="tab">
+<li id="_tabs_22_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_21_maven--panel" class="tabpanel"
aria-labelledby="_tabs_21_maven">
+<div id="_tabs_22_maven--panel" class="tabpanel"
aria-labelledby="_tabs_22_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1649,7 +1731,7 @@ to format log events as JSON.</p>
</div>
</div>
</div>
-<div id="_tabs_21_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_21_gradle">
+<div id="_tabs_22_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_22_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1691,19 +1773,19 @@ It is based on the latest version of the Java
driver.</p>
<a href="manual/appenders/database.html#MongoDbProvider" class="xref
page">MongoDb provider</a>
for more information.</p>
</div>
-<div id="_tabs_22" class="openblock tabs is-sync is-loading">
+<div id="_tabs_23" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_22_maven" class="tab">
+<li id="_tabs_23_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_22_gradle" class="tab">
+<li id="_tabs_23_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_22_maven--panel" class="tabpanel"
aria-labelledby="_tabs_22_maven">
+<div id="_tabs_23_maven--panel" class="tabpanel"
aria-labelledby="_tabs_23_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1717,7 +1799,7 @@ for more information.</p>
</div>
</div>
</div>
-<div id="_tabs_22_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_22_gradle">
+<div id="_tabs_23_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_23_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1755,19 +1837,19 @@ used to compile <a href="manual/plugins.html"
class="xref page">Log4j plugins</a
<div class="paragraph">
<p>See <a href="manual/extending.html" class="xref page">Extending Log4j</a>
for more details.</p>
</div>
-<div id="_tabs_23" class="openblock tabs is-sync is-loading">
+<div id="_tabs_24" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_23_maven" class="tab">
+<li id="_tabs_24_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_23_gradle" class="tab">
+<li id="_tabs_24_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_23_maven--panel" class="tabpanel"
aria-labelledby="_tabs_23_maven">
+<div id="_tabs_24_maven--panel" class="tabpanel"
aria-labelledby="_tabs_24_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1781,7 +1863,7 @@ used to compile <a href="manual/plugins.html" class="xref
page">Log4j plugins</a
</div>
</div>
</div>
-<div id="_tabs_23_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_23_gradle">
+<div id="_tabs_24_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_24_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1818,19 +1900,19 @@ used to compile <a href="manual/plugins.html"
class="xref page">Log4j plugins</a
<div class="paragraph">
<p>See <a href="manual/architecture.html" class="xref page">Architecture</a>
for more details.</p>
</div>
-<div id="_tabs_24" class="openblock tabs is-sync is-loading">
+<div id="_tabs_25" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_24_maven" class="tab">
+<li id="_tabs_25_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_24_gradle" class="tab">
+<li id="_tabs_25_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_24_maven--panel" class="tabpanel"
aria-labelledby="_tabs_24_maven">
+<div id="_tabs_25_maven--panel" class="tabpanel"
aria-labelledby="_tabs_25_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1844,7 +1926,7 @@ used to compile <a href="manual/plugins.html" class="xref
page">Log4j plugins</a
</div>
</div>
</div>
-<div id="_tabs_24_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_24_gradle">
+<div id="_tabs_25_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_25_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1894,19 +1976,19 @@ It is required by:</p>
<div class="paragraph">
<p>See <a href="manual/scripts.html" class="xref page">Scripts</a> for more
details.</p>
</div>
-<div id="_tabs_25" class="openblock tabs is-sync is-loading">
+<div id="_tabs_26" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_25_maven" class="tab">
+<li id="_tabs_26_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_25_gradle" class="tab">
+<li id="_tabs_26_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_25_maven--panel" class="tabpanel"
aria-labelledby="_tabs_25_maven">
+<div id="_tabs_26_maven--panel" class="tabpanel"
aria-labelledby="_tabs_26_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1920,7 +2002,7 @@ It is required by:</p>
</div>
</div>
</div>
-<div id="_tabs_25_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_25_gradle">
+<div id="_tabs_26_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_26_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1971,19 +2053,19 @@ to the <a href="manual/api.html" class="xref
page">Log4j API</a>.</p>
</tr>
</table>
</div>
-<div id="_tabs_26" class="openblock tabs is-sync is-loading">
+<div id="_tabs_27" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_26_maven" class="tab">
+<li id="_tabs_27_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_26_gradle" class="tab">
+<li id="_tabs_27_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_26_maven--panel" class="tabpanel"
aria-labelledby="_tabs_26_maven">
+<div id="_tabs_27_maven--panel" class="tabpanel"
aria-labelledby="_tabs_27_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -1997,7 +2079,7 @@ to the <a href="manual/api.html" class="xref page">Log4j
API</a>.</p>
</div>
</div>
</div>
-<div id="_tabs_26_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_26_gradle">
+<div id="_tabs_27_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_27_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2048,19 +2130,19 @@ to the <a href="manual/api.html" class="xref
page">Log4j API</a>.</p>
</tr>
</table>
</div>
-<div id="_tabs_27" class="openblock tabs is-sync is-loading">
+<div id="_tabs_28" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_27_maven" class="tab">
+<li id="_tabs_28_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_27_gradle" class="tab">
+<li id="_tabs_28_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_27_maven--panel" class="tabpanel"
aria-labelledby="_tabs_27_maven">
+<div id="_tabs_28_maven--panel" class="tabpanel"
aria-labelledby="_tabs_28_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2074,7 +2156,7 @@ to the <a href="manual/api.html" class="xref page">Log4j
API</a>.</p>
</div>
</div>
</div>
-<div id="_tabs_27_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_27_gradle">
+<div id="_tabs_28_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_28_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2111,19 +2193,19 @@ or earlier versions.</p>
<div class="paragraph">
<p>See <a href="log4j-spring-cloud-config-client.html" class="xref page">Log4j
Spring Cloud Configuration</a> for more details.</p>
</div>
-<div id="_tabs_28" class="openblock tabs is-sync is-loading">
+<div id="_tabs_29" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_28_maven" class="tab">
+<li id="_tabs_29_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_28_gradle" class="tab">
+<li id="_tabs_29_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_28_maven--panel" class="tabpanel"
aria-labelledby="_tabs_28_maven">
+<div id="_tabs_29_maven--panel" class="tabpanel"
aria-labelledby="_tabs_29_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2137,7 +2219,7 @@ or earlier versions.</p>
</div>
</div>
</div>
-<div id="_tabs_28_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_28_gradle">
+<div id="_tabs_29_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_29_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2190,19 +2272,19 @@ that logs to
</tr>
</table>
</div>
-<div id="_tabs_29" class="openblock tabs is-sync is-loading">
+<div id="_tabs_30" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_29_maven" class="tab">
+<li id="_tabs_30_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_29_gradle" class="tab">
+<li id="_tabs_30_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_29_maven--panel" class="tabpanel"
aria-labelledby="_tabs_29_maven">
+<div id="_tabs_30_maven--panel" class="tabpanel"
aria-labelledby="_tabs_30_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2216,7 +2298,7 @@ that logs to
</div>
</div>
</div>
-<div id="_tabs_29_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_29_gradle">
+<div id="_tabs_30_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_30_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2269,19 +2351,19 @@ that logs to
</tr>
</table>
</div>
-<div id="_tabs_30" class="openblock tabs is-sync is-loading">
+<div id="_tabs_31" class="openblock tabs is-sync is-loading">
<div class="content">
<div class="ulist tablist">
<ul>
-<li id="_tabs_30_maven" class="tab">
+<li id="_tabs_31_maven" class="tab">
<p>Maven</p>
</li>
-<li id="_tabs_30_gradle" class="tab">
+<li id="_tabs_31_gradle" class="tab">
<p>Gradle</p>
</li>
</ul>
</div>
-<div id="_tabs_30_maven--panel" class="tabpanel"
aria-labelledby="_tabs_30_maven">
+<div id="_tabs_31_maven--panel" class="tabpanel"
aria-labelledby="_tabs_31_maven">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
@@ -2295,7 +2377,7 @@ that logs to
</div>
</div>
</div>
-<div id="_tabs_30_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_30_gradle">
+<div id="_tabs_31_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_31_gradle">
<div class="paragraph">
<p>We assume you use <a href="#log4j-bom"><code>log4j-bom</code></a> for
dependency management.</p>
</div>
diff --git a/development.html b/development.html
index cda0a4b452..8ec93c8a92 100644
--- a/development.html
+++ b/development.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/download.html b/download.html
index 9e1c7d5dae..ce4471a940 100644
--- a/download.html
+++ b/download.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/faq.html b/faq.html
index b32cc6b2b2..47ee7e1279 100644
--- a/faq.html
+++ b/faq.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/hibernate.html b/hibernate.html
index 3d9ca2ac6b..6894435982 100644
--- a/hibernate.html
+++ b/hibernate.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/index.html b/index.html
index 1347121c5d..df0021adb4 100644
--- a/index.html
+++ b/index.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/javadoc.html b/javadoc.html
index d495970d8a..76edeb2110 100644
--- a/javadoc.html
+++ b/javadoc.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/log4j-jul.html b/log4j-jul.html
index 38e660cf49..07c0712bdf 100644
--- a/log4j-jul.html
+++ b/log4j-jul.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <title>Log4j JDK Logging Adapter :: Apache Log4j</title>
+ <title>JUL-to-Log4j bridge :: Apache Log4j</title>
<link rel="canonical"
href="https://logging.apache.org/log4j/3.x/log4j-jul.html">
<meta name="generator" content="Antora 3.2.0-alpha.6">
<link rel="stylesheet" href="./_/css/site.css">
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item is-current-page" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
@@ -289,7 +289,7 @@
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="components.html">Components</a></li>
- <li><a href="log4j-jul.html">Log4j JDK Logging Adapter</a></li>
+ <li><a href="log4j-jul.html">JUL-to-Log4j bridge</a></li>
</ul>
</nav>
<div class="edit-this-page"><a
href="https://github.com/apache/logging-log4j2/edit/main/src/site/antora/modules/ROOT/pages/log4j-jul.adoc">Edit
this Page</a></div>
@@ -299,179 +299,473 @@
<div class="toc-menu"></div>
</aside>
<article class="doc">
-<h1 class="page">Log4j JDK Logging Adapter</h1>
+<h1 class="page">JUL-to-Log4j bridge</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
-<p>The JDK Logging Adapter is a custom implementation of
-<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/LogManager.html"><code>java.util.logging.LogManager</code></a>
-that uses <a href="javadoc/log4j-core/index.html">Log4j</a>.
-This adapter can be used with either the Log4j API or Log4j Core.
-When used with the API, there are a couple features of JUL that aren’t
supported.
-However, this does allow any other Log4j Provider besides the Core provider to
be used with JUL.</p>
+<p>The JUL-to-Log4j bridge provides components that allow application and
library that use
+<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html"><code>java.util.logging.Logger</code></a>
+(JUL) to log to the Log4j API instead.</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>This chapter covers advanced usage scenarios of the JUL-to-Log4j bridge.
+For the installation procedure and basic configuration see
+<a href="manual/installation.html#impl-core-bridge-jul" class="xref
page">Using JUL-to-Log4j</a>
+section of our
+<a href="manual/installation.html" class="xref page">Installation
guide</a>.</p>
+</div>
+</td>
+</tr>
+</table>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
+<h2 id="configuration"><a class="anchor"
href="#configuration"></a>Configuration</h2>
<div class="sectionbody">
+<details>
+<summary class="title">Struggling with the logging API, implementation, and
bridge concepts? Click for an introduction.</summary>
+<div class="content">
+<div id="logging-api" class="dlist">
+<dl>
+<dt class="hdlist1">Logging API</dt>
+<dd>
+<p>A logging API is an interface your code or your dependencies directly logs
against.
+It is required at compile-time.
+It is implementation agnostic to ensure that your application can write logs,
but is not tied to a specific logging implementation.
+Log4j API, <a href="https://www.slf4j.org">SLF4J</a>, <a
href="https://docs.oracle.com/en/java/javase/17/core/java-logging-overview.html">JUL
(Java Logging)</a>, <a
href="https://commons.apache.org/proper/commons-logging/">JCL (Apache Commons
Logging)</a>, <a href="https://openjdk.org/jeps/264">JPL (Java Platform
Logging)</a> and <a href="https://github.com/jboss-logging/jboss-logging">JBoss
Logging</a> are major logging APIs.</p>
+</dd>
+</dl>
+</div>
+<div id="logging-impl" class="dlist">
+<dl>
+<dt class="hdlist1">Logging implementation</dt>
+<dd>
+<p>A logging implementation is only required at runtime and can be changed
without the need to recompile your software.
+Log4j Core, <a
href="https://docs.oracle.com/en/java/javase/17/core/java-logging-overview.html">JUL
(Java Logging)</a>, <a href="https://logback.qos.ch">Logback</a> are the most
well-known logging implementations.</p>
+</dd>
+</dl>
+</div>
+<div id="logging-bridge" class="dlist">
+<dl>
+<dt class="hdlist1">Logging bridge</dt>
+<dd>
+<p>Logging implementations accept input from a single logging API of their
preference; Log4j Core from Log4j API, Logback from SLF4J, etc.
+A logging bridge is a simple logging implementation of a logging API that
forwards all messages to a foreign logging API.
+Logging bridges allow a logging implementation to accept input from other
logging APIs that are not their primary logging API.
+For instance, <code>log4j-slf4j2-impl</code> <em>bridges</em> SLF4J calls to
Log4 API and effectively enables Log4j Core to accept input from SLF4J.</p>
+</dd>
+</dl>
+</div>
<div class="paragraph">
-<p>The JDK Logging Adapter is dependent on the Log4j API and optionally Log4j
Core.</p>
+<p>To make things a little bit more tangible, consider the following
visualization of a typical Log4j Core installation with bridges for an
application:</p>
+</div>
+<div class="imageblock kroki">
+<div class="content">
+<img src="_images/diag-1fd758c2554d79996565796f77cf0f8dc6b3bca2.svg"
alt="Visualization of a typical Log4j Core installation with SLF4J, JUL, and
JPL bridges.">
+</div>
+<div class="title">Figure 1. Visualization of a typical Log4j Core
installation with SLF4J, JUL, and JPL bridges.</div>
+</div>
+</div>
+</details>
+<div class="paragraph">
+<p>The <code>java.util.logging</code> logging API, available since JRE 1.4,
shares many similarities with other logging API, such as SLF4J or Log4j API.
+Similarly to other APIs, it allows users to change the underlying
+<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/LogManager.html"><code>LogManager</code></a>
+implementation, but unlike other APIs, it has two big limitations:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>it is part of JRE, which means that each JVM can contain only one instance
of the <code>LogManager</code> class and all the applications of an application
server must use the same <code>LogManager</code> implementation,</p>
+</li>
+<li>
+<p>it does not support auto-detection of the logging backend through
<code>ServiceLoader</code> or a similar mechanim (see
+<a href="https://bugs.openjdk.org/browse/JDK-8262741">JDK-8262741</a>
+).
+In order to switch to an alternate <code>LogManager</code> implementation you
must be able to set the <code>java.util.logging.manager</code> system property
<strong>before</strong> the first logging call.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>To work around the limitations of JUL, the JUL-to-Log4j bridge offers two
installation options:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>If you are able to modify the <code>java.util.logging.manager</code> system
property very early in the JVM startup process, you can replace the default
<code>LogManager</code> implementation with a Log4j-specific one.
+This option gives the best performance.
+See <a href="#bridge-logmanager">Using <code>LogManager</code></a> for
details.</p>
+</li>
+<li>
+<p>If JUL initializes <strong>before</strong> your application does, which is
a typical behavior in application servers, you can still configure JUL to use
Log4j as appender.
+See <a href="#bridge-handler">Using <code>Log4jBridgeHandler</code></a> for
details.</p>
+</li>
+</ol>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="_usage"><a class="anchor" href="#_usage"></a>Usage</h2>
+<h2 id="bridge-logmanager"><a class="anchor"
href="#bridge-logmanager"></a>Using <code>LogManager</code></h2>
<div class="sectionbody">
<div class="paragraph">
-<p>To use the JDK Logging Adapter, you must set the system property
<code>java.util.logging.manager</code> to
<code>org.apache.logging.log4j.jul.LogManager</code>.</p>
+<p>The best way to install the JUL-to-Log4j bridge on your system is to set
the value of the <code>java.util.logging.manager</code> Java system property
to</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre>org.apache.logging.jul.tolog4j.LogManager</pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This property must be set very early in an application initialization
process, e.g. using the <code>-D<property>=<value></code> command
line option of the <code>java</code> executable or by adding:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-java hljs"
data-lang="java">static {
+ if (System.getProperty("java.util.logging.manager") == null) {
+ System.setProperty("java.util.logging.manager",
"org.apache.logging.jul.tolog4j.LogManager");
+ }
+}</code></pre>
+</div>
</div>
<div class="paragraph">
-<p>This must be done either through the command line (i.e., using the
<code>-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager</code>
argument) or by using <code>System.setProperty()</code> before any calls are
made to <code>LogManager</code> or <code>Logger</code>.</p>
+<p>at the top of your main class.</p>
+</div>
+<div class="paragraph">
+<p>Setting this property will replace the default JUL <code>LogManager</code>
implementation with a custom implementation that translates JUL
<code>Logger</code> method calls into Log4j <code>Logger</code> calls with a
<strong>minimal</strong> overhead.</p>
+</div>
+<div class="sect2">
+<h3 id="bridge-logmanager-features"><a class="anchor"
href="#bridge-logmanager-features"></a><code>LogManager</code>-specific
features</h3>
+<div class="paragraph">
+<p>The use of the following <code>j.u.l.Logger</code> methods is
<strong>not</strong> supported by the default
<code>AbstractLoggerAdapter</code> implementation:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html#setFilter(java.util.logging.Filter)"><code>Logger.setFilter(j.u.l.Filter)</code></a>,</p>
+</li>
+<li>
+<p><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html#setLevel(java.util.logging.Level)"><code>Logger.setLevel(j.u.l.Level)</code></a>,</p>
+</li>
+<li>
+<p><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html#setParent(java.util.logging.Logger)"><code>Logger.setParent(j.u.l.Logger)</code></a>,</p>
+</li>
+<li>
+<p><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html#setUseParentHandlers(boolean)"><code>Logger.setUseParentHandlers(boolean)</code></a>,</p>
+</li>
+<li>
+<p><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html#addHandler(java.util.logging.Handler)"><code>Logger.addHandler(j.u.l.Handler)</code></a>,</p>
+</li>
+<li>
+<p><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html#removeHandler(java.util.logging.Handler)"><code>Logger.removeHandler(j.u.l.Handler)</code></a>.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The implementation of these methods depends upon the specific Log4j API
implementation used.
+If you need to modify the configuration of the logging backend
programmatically:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>either modify the logging backend configuration directly.
+See <a href="manual/customconfig.html" class="xref page">Programmatic
Configuration</a> if you are using the <a href="manual/implementation.html"
class="xref page">Log4j Core implementation</a>.</p>
+</li>
+<li>
+<p>or provide a custom <code>AbstractLoggerAdapter</code> that provides an
implementation for these methods.
+See <a
href="#log4j.jul.loggerAdapter"><code>log4j.jul.loggerAdapter</code></a> for
details about custom adapters.</p>
+</li>
+</ul>
+</div>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="_compatibility"><a class="anchor"
href="#_compatibility"></a>Compatibility</h2>
+<h2 id="bridge-handler"><a class="anchor" href="#bridge-handler"></a>Using
<code>Log4jBridgeHandler</code></h2>
<div class="sectionbody">
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+<div class="title">Are you a Spring Boot user?</div>
<div class="paragraph">
-<p>The use of a
-<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Filter.html"><code>java.util.logging.Filter</code></a>
-is supported on a
-per-<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html"><code>Logger</code></a>
-basis.
-However, it is recommended to use the standard <a href="manual/filters.html"
class="xref page">filters</a> feature in Log4j instead.</p>
+<p>Spring Boot will automatically configure
<code>Log4jBridgeHandler</code>.</p>
+</div>
+</td>
+</tr>
+</table>
</div>
<div class="paragraph">
-<p>The use of
-<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Handler.html"><code>java.util.logging.Handler</code></a>
-classes is
-<em>NOT</em> supported.
-Custom Handlers should instead use an appropriate
-<a href="manual/appenders.html" class="xref page">Appender</a>
-or code their own
-<a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/Appender.html"><code>Appender</code></a>
-plugin.</p>
+<p>If setting the <code>java.util.logging.manager</code> system property is
not possible, the JUL-to-Log4j bridge offers an implementation of
+<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Handler.html"><code>j.u.l.Handler</code></a>
+abstract class, which redirects all log events to Log4j Core:
+<code>org.apache.logging.log4j.jul.Log4jBridgeHandler</code>.</p>
</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>Java logging levels are translated into Log4j logging levels dynamically.
-The following table lists the conversions between a Java logging level and its
equivalent Log4j level.
-Custom levels should be implemented as an implementation of
<code>LevelConverter</code>, and the Log4j property
-<a href="manual/systemproperties.html#log4j.jul.levelConverter" class="xref
page"><code>log4j.jul.levelConverter</code></a>
-must be set to your custom class name.
-Using the default <code>LevelConverter</code> implementation, custom logging
levels are mapped to whatever the current level of the <code>Logger</code>
being logged to is using.</p>
+<p>The <code>Log4jBridgeHandler</code> requires Log4j Core as logging
implementation and will fail with other Log4j API implementations.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>In order to use <code>Log4jBridgeHandler</code> you can either:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>modify the default JUL configuration file <code>logging.properties</code>
to only contain:</p>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-properties hljs"
data-lang="properties"># Set Log4jBridgeHandler as only handler for all JUL
loggers
+handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>See the
+<a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/LogManager.html">JRE
documentation</a>
+for details about the format and location of the
<code>logging.properties</code> file.</p>
+</div>
+</li>
+<li>
+<p>or call the <code>Log4jBridgeHandler.install()</code> method in your
code.</p>
+</li>
+</ul>
+</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>Usage of <code>Log4jBridgeHandler</code> introduces a considerably higher
overhead, since logging events need to traverse the entire JUL logging pipeline
followed by the logging pipeline of the Log4j API implementation.</p>
+</div>
+<div class="paragraph">
+<p>Consider setting <a
href="#bridge-handler-propagateLevels"><code>propagateLevels</code></a> to
<code>true</code> to reduce the overhead.</p>
+</div>
+</td>
+</tr>
+</table>
</div>
<div class="sect2">
-<h3 id="default-level-conversions"><a class="anchor"
href="#default-level-conversions"></a>Default Level Conversions</h3>
+<h3 id="bridge-handler-propagator"><a class="anchor"
href="#bridge-handler-propagator"></a>Level propagators</h3>
+
+</div>
+<div class="sect2">
+<h3 id="bridge-handler-config"><a class="anchor"
href="#bridge-handler-config"></a><code>Log4jBridgeHandler</code> configuration
options</h3>
+<div class="paragraph">
+<p>You can tune the behavior of <code>Log4jBridgeHandler</code> by adding the
following properties to the <code>logging.properties</code> configuration file,
which are also available as parameters to the <code>install()</code> method
call:</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="bridge-handler-appendSuffix"><a class="anchor"
href="#bridge-handler-appendSuffix"></a><code>appendSuffix</code></h3>
<table class="tableblock frame-all grid-all stretch">
-<caption class="title">Table 1. JUL to Log4j level conversion</caption>
<colgroup>
-<col style="width: 50%;">
-<col style="width: 50%;">
+<col style="width: 28.5714%;">
+<col style="width: 71.4286%;">
</colgroup>
-<thead>
-<tr>
-<th class="tableblock halign-left valign-top">Java Level</th>
-<th class="tableblock halign-left valign-top">Log4j Level</th>
-</tr>
-</thead>
<tbody>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#OFF"><code>OFF</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://logging.apache.org/log4j/2.x/javadoc/log4j-api/org/apache/logging/log4j/Level.html#OFF"><code>OFF</code></a></p></td>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Property
name</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.log4j.jul.Log4jBridgeHandler.appendSuffix</code></p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#SEVERE"><code>SEVERE</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://logging.apache.org/log4j/2.x/javadoc/log4j-api/org/apache/logging/log4j/Level.html#ERROR"><code>ERROR</code></a></p></td>
+<th class="tableblock halign-left valign-top"><p
class="tableblock"><code>install()</code> parameter</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>suffixToAppend</code></p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#WARNING"><code>WARNING</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://logging.apache.org/log4j/2.x/javadoc/log4j-api/org/apache/logging/log4j/Level.html#WARN"><code>WARN</code></a></p></td>
+<th class="tableblock halign-left valign-top"><p
class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>String</code></p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#OFF"><code>OFF</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://logging.apache.org/log4j/2.x/javadoc/log4j-api/org/apache/logging/log4j/Level.html#INFO"><code>INFO</code></a></p></td>
-</tr>
-<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#CONFIG"><code>CONFIG</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">custom
<code>CONFIG</code> level</p></td>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default
value</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>null</code></p></td>
</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Specifies the suffix to append to the name of all JUL loggers, which allows
to differentiate JUL log messages from native Log4j API messages.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="bridge-handler-propagateLevels"><a class="anchor"
href="#bridge-handler-propagateLevels"></a><code>propagateLevels</code></h3>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 28.5714%;">
+<col style="width: 71.4286%;">
+</colgroup>
+<tbody>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINE"><code>FINE</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://logging.apache.org/log4j/2.x/javadoc/log4j-api/org/apache/logging/log4j/Level.html#DEBUG"><code>DEBUG</code></a></p></td>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Property
name</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels</code></p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINER"><code>FINER</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://logging.apache.org/log4j/2.x/javadoc/log4j-api/org/apache/logging/log4j/Level.html#TRACE"><code>TRACE</code></a></p></td>
+<th class="tableblock halign-left valign-top"><p
class="tableblock"><code>install()</code> parameter</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>propagateLevels</code></p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINEST"><code>FINEST</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">custom
<code>FINEST</code> level</p></td>
+<th class="tableblock halign-left valign-top"><p
class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>boolean</code></p></td>
</tr>
<tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#ALL"><code>ALL</code></a></p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock"><a
href="https://logging.apache.org/log4j/2.x/javadoc/log4j-api/org/apache/logging/log4j/Level.html#ALL"><code>ALL</code></a></p></td>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default
value</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>false</code></p></td>
</tr>
</tbody>
</table>
-</div>
-</div>
-</div>
-<div class="sect1">
-<h2 id="_log4j_jdk_logging_bridge_handler"><a class="anchor"
href="#_log4j_jdk_logging_bridge_handler"></a>Log4j JDK Logging Bridge
Handler</h2>
-<div class="sectionbody">
<div class="paragraph">
-<p>The LogManager is not always useable because you have to set a JVM wide
effective system property - e.g.
-in web servers this is not possible if you are not the administrator.</p>
-</div>
-<div class="paragraph">
-<p>The <code>Log4jBridgeHandler</code> is an alternative that can be
declaratively used via <code>logging.properties</code>.</p>
+<p>The additional overhead of <code>Log4jBridgeHandler</code> can be
especially heavy for <strong>disabled</strong> log statements.
+This is why you must ensure that log event filtering of the Log4j
implementation and JUL are aligned.
+You can do it by either:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>configuring JUL loggers with the same levels as the Log4j loggers,</p>
+</li>
+<li>
+<p>or setting this property to <code>true</code>, which will perform the
synchronization automatically.</p>
+</li>
+</ul>
</div>
-<div class="paragraph">
-<p>It is less performant than the LogManager but still okay to use: the
LogManager replaces the JDK implementation, so your logging code (using JDK
syntax) effectively directly uses log4j.
-When using the BridgeHandler the original JDK implementation along with its
configuration (e.g.
-log levels) is still fully working but the log events are "written" via this
handler to log4j as if you would have called log4j.Logger.debug() etc.;
-it is like a FileHandler but instead of writing to a file, it "writes" to
log4j Loggers - thus there is some overhead compared to using LogManager.</p>
</div>
</div>
</div>
<div class="sect1">
-<h2 id="_usage_2"><a class="anchor" href="#_usage_2"></a>Usage</h2>
+<h2 id="common-configuration"><a class="anchor"
href="#common-configuration"></a>Common configuration</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The JUL configuration file <code>logging.properties</code> needs the
line</p>
+<p>Independently of the way you install the JUL-to-Log4j bridge, you can
finely tune the behavior of the bridge using the following configuration
properties.
+See <a href="manual/systemproperties.html" class="xref page">Configuration
properties</a> for more details.</p>
</div>
+<div class="sect3">
+<h4 id="log4j.jul.levelConverter"><a class="anchor"
href="#log4j.jul.levelConverter"></a><code>log4j.jul.levelConverter</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Env.
variable</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>LOG4J_JUL_LEVEL_CONVERTER</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p
class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>Class<? extends LevelConverter></code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default
value</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.jul.tolog4j.internal.DefaultLevelConverter</code></p></td>
+</tr>
+</tbody>
+</table>
<div class="paragraph">
-<p><code>handlers = org.apache.logging.log4j.jul.Log4jBridgeHandler</code></p>
+<p>Fully qualified name of an alternative
<code>org.apache.logging.jul.tolog4j.spi.LevelConverter</code>
implementation.</p>
</div>
-<div class="paragraph">
-<p>and JUL logs go to log4j2.
-Additionally, you typically want to use to following:</p>
+<details>
+<summary class="title">Default level conversions</summary>
+<div class="content">
+<table id="default-level-conversions" class="tableblock frame-all grid-all
stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Java Level</th>
+<th class="tableblock halign-left valign-top">Log4j Level</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#OFF">OFF</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>OFF</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#SEVERE">SEVERE</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>ERROR</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#WARNING">WARNING</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>WARN</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#INFO">INFO</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>INFO</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#CONFIG">CONFIG</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">custom
<code>CONFIG</code> level with a numeric value of <code>450</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINE">FINE</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>DEBUG</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINER">FINER</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>TRACE</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINEST">FINEST</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">custom
<code>FINEST</code> level with a numeric value of <code>700</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#ALL">ALL</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>ALL</code></p></td>
+</tr>
+</tbody>
+</table>
</div>
-<div class="paragraph">
-<p><code>org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels =
true</code></p>
+</details>
</div>
+<div class="sect3">
+<h4 id="log4j.jul.loggerAdapter"><a class="anchor"
href="#log4j.jul.loggerAdapter"></a><code>log4j.jul.loggerAdapter</code></h4>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 16.6666%;">
+<col style="width: 83.3334%;">
+</colgroup>
+<tbody>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Env.
variable</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>LOG4J_JUL_LOGGER_ADAPTER</code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p
class="tableblock">Type</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>Class<? extends
AbstractLoggerAdapter></code></p></td>
+</tr>
+<tr>
+<th class="tableblock halign-left valign-top"><p class="tableblock">Default
value</p></th>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.jul.tolog4j.internal.ApiLoggerAdapter</code></p></td>
+</tr>
+</tbody>
+</table>
<div class="paragraph">
-<p>In a webapp on Tomcat (and maybe other servers, too), you may simply create
a <code>WEB-INF/classes/logging.properties</code> file with above content.
-The bridge and the log levels defined in this file are only valid for your
webapp and do <em>not</em> have any impact on the other webapps on the same
Tomcat instance.</p>
+<p>Fully qualified class name of a custom
<code>org.apache.logging.jul.tolog4j.spi.AbstractLoggerAdapter</code>
implementation to use, which provides an implementation of the
<code>j.u.l.Logger</code> mutator methods (e.g.,
<code>Logger.setLevel()</code>).</p>
</div>
<div class="paragraph">
-<p>Alternatively you may call <code>Log4jBridgeHandler.install()</code> inside
your webapp’s initialization code, e.g.
-inside <code>ServletContextListener</code> or a <code>ServletFilter</code>
static-class-init.
-or <code>contextInitialized()</code>.</p>
+<p>By default
<code>org.apache.logging.jul.tolog4j.internal.ApiLoggerAdapter</code> is used
and the mutator methods are disabled.</p>
</div>
-<div class="admonitionblock important">
-<table>
-<tr>
-<td class="icon">
-<i class="fa icon-important" title="Important"></i>
-</td>
-<td class="content">
-Log levels of JDK should match the ones of log4j.
-You may do this manually or use the automatic level propagation via
<code>Log4jBridgeHandler.propagateLevels = true</code>.
-</td>
-</tr>
-</table>
</div>
</div>
</div>
diff --git a/log4j-slf4j-impl.html b/log4j-slf4j-impl.html
index f644d7f9c6..267bd60943 100644
--- a/log4j-slf4j-impl.html
+++ b/log4j-slf4j-impl.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/log4j-slf4j2-impl.html b/log4j-slf4j2-impl.html
index cb4fc002e0..8fc479a68f 100644
--- a/log4j-slf4j2-impl.html
+++ b/log4j-slf4j2-impl.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/log4j-spring-cloud-config-client.html
b/log4j-spring-cloud-config-client.html
index f0aba3281d..ccb54fa3fc 100644
--- a/log4j-spring-cloud-config-client.html
+++ b/log4j-spring-cloud-config-client.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/log4j-to-jul.html b/log4j-to-jul.html
index 214d9b1ed9..a4120ad0c4 100644
--- a/log4j-to-jul.html
+++ b/log4j-to-jul.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item is-current-page" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/api.html b/manual/api.html
index 282f19103d..7e7ca21bcb 100644
--- a/manual/api.html
+++ b/manual/api.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/appenders.html b/manual/appenders.html
index 2fe30adfdf..9b948eb6d1 100644
--- a/manual/appenders.html
+++ b/manual/appenders.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/appenders/database.html b/manual/appenders/database.html
index 1ac6d2e165..cd5cdaeed5 100644
--- a/manual/appenders/database.html
+++ b/manual/appenders/database.html
@@ -241,7 +241,7 @@
<a class="nav-link"
href="../../log4j-spring-cloud-config-client.html">Log4j Spring Cloud
Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../../log4j-jul.html">Log4j JDK Logging
Adapter</a>
+ <a class="nav-link" href="../../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/appenders/delegating.html b/manual/appenders/delegating.html
index afa159df86..c43d2ad2fb 100644
--- a/manual/appenders/delegating.html
+++ b/manual/appenders/delegating.html
@@ -241,7 +241,7 @@
<a class="nav-link"
href="../../log4j-spring-cloud-config-client.html">Log4j Spring Cloud
Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../../log4j-jul.html">Log4j JDK Logging
Adapter</a>
+ <a class="nav-link" href="../../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/appenders/file.html b/manual/appenders/file.html
index 3cb2095fd6..157b71a658 100644
--- a/manual/appenders/file.html
+++ b/manual/appenders/file.html
@@ -241,7 +241,7 @@
<a class="nav-link"
href="../../log4j-spring-cloud-config-client.html">Log4j Spring Cloud
Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../../log4j-jul.html">Log4j JDK Logging
Adapter</a>
+ <a class="nav-link" href="../../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/appenders/message-queue.html
b/manual/appenders/message-queue.html
index 2cb19af0c8..5b35ad1d0b 100644
--- a/manual/appenders/message-queue.html
+++ b/manual/appenders/message-queue.html
@@ -241,7 +241,7 @@
<a class="nav-link"
href="../../log4j-spring-cloud-config-client.html">Log4j Spring Cloud
Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../../log4j-jul.html">Log4j JDK Logging
Adapter</a>
+ <a class="nav-link" href="../../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/appenders/network.html b/manual/appenders/network.html
index 9620cff58c..58465f2747 100644
--- a/manual/appenders/network.html
+++ b/manual/appenders/network.html
@@ -241,7 +241,7 @@
<a class="nav-link"
href="../../log4j-spring-cloud-config-client.html">Log4j Spring Cloud
Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../../log4j-jul.html">Log4j JDK Logging
Adapter</a>
+ <a class="nav-link" href="../../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/appenders/rolling-file.html
b/manual/appenders/rolling-file.html
index 2e75bde239..f8a586ed70 100644
--- a/manual/appenders/rolling-file.html
+++ b/manual/appenders/rolling-file.html
@@ -241,7 +241,7 @@
<a class="nav-link"
href="../../log4j-spring-cloud-config-client.html">Log4j Spring Cloud
Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../../log4j-jul.html">Log4j JDK Logging
Adapter</a>
+ <a class="nav-link" href="../../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/architecture.html b/manual/architecture.html
index fae4c95448..dc65ee05f7 100644
--- a/manual/architecture.html
+++ b/manual/architecture.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/async.html b/manual/async.html
index 72ad66f660..7ce936ecee 100644
--- a/manual/async.html
+++ b/manual/async.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/cloud.html b/manual/cloud.html
index aad7e47fe8..4440dc84d2 100644
--- a/manual/cloud.html
+++ b/manual/cloud.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/config-intro.html b/manual/config-intro.html
index 22d555dc35..233123abcc 100644
--- a/manual/config-intro.html
+++ b/manual/config-intro.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/configuration.html b/manual/configuration.html
index 5895d75a2c..30e1e037c1 100644
--- a/manual/configuration.html
+++ b/manual/configuration.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/customconfig.html b/manual/customconfig.html
index 7ea056a3a0..7ccd7e8152 100644
--- a/manual/customconfig.html
+++ b/manual/customconfig.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/dependencyinjection.html b/manual/dependencyinjection.html
index 3cfd31b2b5..0a6c3b2823 100644
--- a/manual/dependencyinjection.html
+++ b/manual/dependencyinjection.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/extending.html b/manual/extending.html
index 03430f2e09..749baed1c8 100644
--- a/manual/extending.html
+++ b/manual/extending.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/filters.html b/manual/filters.html
index 4bcdf70bf8..95d71b0894 100644
--- a/manual/filters.html
+++ b/manual/filters.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/garbagefree.html b/manual/garbagefree.html
index 8631ecb40d..e06a3aeae6 100644
--- a/manual/garbagefree.html
+++ b/manual/garbagefree.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/getting-started.html b/manual/getting-started.html
index c8295a6008..20cb11e4b7 100644
--- a/manual/getting-started.html
+++ b/manual/getting-started.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/implementation.html b/manual/implementation.html
index 9cb961ab16..ef51ed3ef2 100644
--- a/manual/implementation.html
+++ b/manual/implementation.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/index.html b/manual/index.html
index 369620c79b..9f7ce51f07 100644
--- a/manual/index.html
+++ b/manual/index.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/installation.html b/manual/installation.html
index 92c9076434..7305ffc15d 100644
--- a/manual/installation.html
+++ b/manual/installation.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
@@ -872,7 +872,7 @@ And if so, which ones?</strong></p>
<div class="content">
<pre class="highlightjs highlight"><code class="language-xml hljs"
data-lang="xml"><dependency>
<groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-jul</artifactId>
+ <artifactId>jul-to-log4j</artifactId>
<scope>runtime</scope>
</dependency></code></pre>
</div>
@@ -884,7 +884,7 @@ And if so, which ones?</strong></p>
</div>
<div class="listingblock">
<div class="content">
-<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-jul'</code></pre>
+<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">runtimeOnly
'org.apache.logging.log4j:jul-to-log4j'</code></pre>
</div>
</div>
</div>
@@ -895,7 +895,7 @@ And if so, which ones?</strong></p>
</div>
<div class="listingblock">
<div class="content">
-<pre class="highlightjs highlight"><code class="language-none
hljs">-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager</code></pre>
+<pre class="highlightjs highlight"><code class="language-none
hljs">-Djava.util.logging.manager=org.apache.logging.jul.tolog4j.LogManager</code></pre>
</div>
</div>
<div class="paragraph">
diff --git a/manual/json-template-layout.html b/manual/json-template-layout.html
index 5ccdd41799..518a5b0529 100644
--- a/manual/json-template-layout.html
+++ b/manual/json-template-layout.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/layouts.html b/manual/layouts.html
index c3865a279e..638d2678f8 100644
--- a/manual/layouts.html
+++ b/manual/layouts.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/lookups.html b/manual/lookups.html
index 0c4e7bb0e0..9be1ea29ec 100644
--- a/manual/lookups.html
+++ b/manual/lookups.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/pattern-layout.html b/manual/pattern-layout.html
index 552b552c70..fb2424508a 100644
--- a/manual/pattern-layout.html
+++ b/manual/pattern-layout.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/performance.html b/manual/performance.html
index 4194578ff1..278f77e3e3 100644
--- a/manual/performance.html
+++ b/manual/performance.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/plugins.html b/manual/plugins.html
index c8601fb63c..c66b249327 100644
--- a/manual/plugins.html
+++ b/manual/plugins.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/scripts.html b/manual/scripts.html
index d6ee31dc23..378bcd279a 100644
--- a/manual/scripts.html
+++ b/manual/scripts.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/manual/systemproperties.html b/manual/systemproperties.html
index d80e7f5917..69b7882601 100644
--- a/manual/systemproperties.html
+++ b/manual/systemproperties.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
@@ -2797,16 +2797,68 @@ for more details.</p>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Default
value</p></th>
-<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.log4j.jul.DefaultLevelConverter</code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.jul.tolog4j.internal.DefaultLevelConverter</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>Fully qualified name of an alternative
<code>org.apache.logging.log4j.jul.LevelConverter</code> implementation.</p>
+<p>Fully qualified name of an alternative
<code>org.apache.logging.jul.tolog4j.spi.LevelConverter</code>
implementation.</p>
</div>
-<div class="paragraph">
-<p>See <a href="../log4j-jul.html#default-level-conversions" class="xref
page">Default Level Conversions</a> for the default implementation.</p>
+<details>
+<summary class="title">Default level conversions</summary>
+<div class="content">
+<table id="default-level-conversions" class="tableblock frame-all grid-all
stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Java Level</th>
+<th class="tableblock halign-left valign-top">Log4j Level</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#OFF">OFF</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>OFF</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#SEVERE">SEVERE</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>ERROR</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#WARNING">WARNING</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>WARN</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#INFO">INFO</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>INFO</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#CONFIG">CONFIG</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">custom
<code>CONFIG</code> level with a numeric value of <code>450</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINE">FINE</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>DEBUG</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINER">FINER</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>TRACE</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#FINEST">FINEST</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">custom
<code>FINEST</code> level with a numeric value of <code>700</code></p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Level.html#ALL">ALL</a></code></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>ALL</code></p></td>
+</tr>
+</tbody>
+</table>
</div>
+</details>
</div>
<div class="sect3">
<h4 id="log4j.jul.loggerAdapter"><a class="anchor"
href="#log4j.jul.loggerAdapter"></a><code>log4j.jul.loggerAdapter</code></h4>
@@ -2826,29 +2878,15 @@ for more details.</p>
</tr>
<tr>
<th class="tableblock halign-left valign-top"><p class="tableblock">Default
value</p></th>
-<td class="tableblock halign-left valign-top"><p
class="tableblock"><em>depends on classpath</em></p></td>
+<td class="tableblock halign-left valign-top"><p
class="tableblock"><code>org.apache.logging.jul.tolog4j.internal.ApiLoggerAdapter</code></p></td>
</tr>
</tbody>
</table>
<div class="paragraph">
-<p>Fully qualified class name of the
<code>org.apache.logging.log4j.jul.AbstractLoggerAdapter</code> implementation
to use.</p>
+<p>Fully qualified class name of a custom
<code>org.apache.logging.jul.tolog4j.spi.AbstractLoggerAdapter</code>
implementation to use, which provides an implementation of the
<code>j.u.l.Logger</code> mutator methods (e.g.,
<code>Logger.setLevel()</code>).</p>
</div>
<div class="paragraph">
-<p>This property allows users to choose between two implementation of the
logging bridge:</p>
-</div>
-<div class="dlist">
-<dl>
-<dt class="hdlist1">org.apache.logging.log4j.jul.CoreLoggerAdapter</dt>
-<dd>
-<p>The default if <code>log4j-core</code> is found in the class path.
-It allows users to modify the Log4j Core configuration through the JUL <a
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.logging/java/util/logging/Logger.html"><code>Logger</code></a>
interface.</p>
-</dd>
-<dt class="hdlist1">org.apache.logging.log4j.jul.ApiLoggerAdapter</dt>
-<dd>
-<p>The default if <code>log4j-core</code> cannot be found in the class path.
-It disables the level mutators in the JUL <code>Logger</code> interface.</p>
-</dd>
-</dl>
+<p>By default
<code>org.apache.logging.jul.tolog4j.internal.ApiLoggerAdapter</code> is used
and the mutator methods are disabled.</p>
</div>
</div>
</div>
diff --git a/manual/usage.html b/manual/usage.html
index 5e5c09b040..2915005ed1 100644
--- a/manual/usage.html
+++ b/manual/usage.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="../log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="../log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="../log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/migrate-from-log4j2.html b/migrate-from-log4j2.html
index 1c7d4ab47b..2248dabdea 100644
--- a/migrate-from-log4j2.html
+++ b/migrate-from-log4j2.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/migrate-from-logback.html b/migrate-from-logback.html
index 0018a7d5a6..209a0dedd0 100644
--- a/migrate-from-logback.html
+++ b/migrate-from-logback.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/migrate-from-slf4j.html b/migrate-from-slf4j.html
index d8280d8f78..b1f6320295 100644
--- a/migrate-from-slf4j.html
+++ b/migrate-from-slf4j.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/plugin-reference.html b/plugin-reference.html
index 7f881b59e0..748fa1817f 100644
--- a/plugin-reference.html
+++ b/plugin-reference.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/release-notes.html b/release-notes.html
index 344979e3f7..d310bbaf40 100644
--- a/release-notes.html
+++ b/release-notes.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>
diff --git a/sitemap.xml b/sitemap.xml
index 6e2a4ec1ab..cf70a80b0e 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-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/components.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/development.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/download.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/faq.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/hibernate.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/index.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/javadoc.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-jul.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-slf4j-impl.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-slf4j2-impl.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-to-jul.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/api.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/database.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/delegating.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/file.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/message-queue.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/network.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders/rolling-file.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/architecture.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/async.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/cloud.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/config-intro.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/configuration.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/customconfig.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/dependencyinjection.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/extending.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/filters.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/garbagefree.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/getting-started.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/implementation.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/index.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/installation.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/json-template-layout.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/layouts.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/lookups.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/pattern-layout.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/performance.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/plugins.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/scripts.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/systemproperties.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/usage.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/migrate-from-log4j2.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/migrate-from-logback.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/migrate-from-slf4j.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/plugin-reference.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/release-notes.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/thanks.html</loc>
-<lastmod>2024-10-19T08:15:33.737Z</lastmod>
+<lastmod>2024-10-22T17:02:33.431Z</lastmod>
</url>
</urlset>
diff --git a/thanks.html b/thanks.html
index 3da29c1df0..e1b97c6fc0 100644
--- a/thanks.html
+++ b/thanks.html
@@ -241,7 +241,7 @@
<a class="nav-link" href="log4j-spring-cloud-config-client.html">Log4j
Spring Cloud Configuration</a>
</li>
<li class="nav-item" data-depth="1">
- <a class="nav-link" href="log4j-jul.html">Log4j JDK Logging Adapter</a>
+ <a class="nav-link" href="log4j-jul.html">JUL-to-Log4j bridge</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="log4j-to-jul.html">Log4j to JUL Adapter</a>