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 2f2f7856ea Add website content generated from
`1d43edce19e4ff0075272c2f84f070452251c41b`
2f2f7856ea is described below
commit 2f2f7856ea7be443b22a6eeb8ff118c8ca6b3568
Author: ASF Logging Services RM <[email protected]>
AuthorDate: Tue May 28 20:49:56 2024 +0000
Add website content generated from
`1d43edce19e4ff0075272c2f84f070452251c41b`
---
faq.html | 3 +-
getting-started.html | 4 +-
log4j-1.2-api.html | 51 +++++++++++++++-
log4j-docker.html | 4 +-
log4j-flume-ng.html | 4 +-
log4j-iostreams.html | 11 +++-
log4j-jul.html | 3 +-
log4j-slf4j-impl.html | 3 +-
log4j-slf4j2-impl.html | 3 +-
log4j-spring-cloud-config-client.html | 11 ++--
log4j-to-jul.html | 3 +-
log4j-to-slf4j.html | 3 +-
manual/appenders.html | 26 ++++----
manual/configuration.html | 28 ++-------
manual/garbagefree.html | 25 ++++----
manual/installation.html | 3 +-
manual/json-template-layout.html | 2 +-
manual/layouts.html | 109 ++++++++++++++++++++++++++++++++--
manual/logsep.html | 3 -
manual/lookups.html | 7 ++-
manual/performance.html | 8 ++-
manual/systemproperties.html | 4 +-
sitemap.xml | 92 ++++++++++++++--------------
23 files changed, 279 insertions(+), 131 deletions(-)
diff --git a/faq.html b/faq.html
index 0edd079383..843d377cc9 100644
--- a/faq.html
+++ b/faq.html
@@ -538,7 +538,8 @@ If an object is logged that implements this interface, its
<code>formatTo(String
<p>The solution is to provide the correct FQCN.
The easiest way to do this is to let Log4j generate the logger wrapper for you.
Log4j comes with a Logger wrapper generator tool.
-This tool was originally meant to support custom log levels and is documented
<a
href="https://logging.apache.org/log4j/2.x/manual/customloglevels.adoc#CustomLoggers">here</a>.
+This tool was originally meant to support custom log levels and was moved to
the
+<a href="/log4j/transform/latest/index.html">Log4j Transform subproject</a>.
The generated logger code will take care of the FQCN.</p>
</div>
</div>
diff --git a/getting-started.html b/getting-started.html
index 42ce202d24..401ada5d98 100644
--- a/getting-started.html
+++ b/getting-started.html
@@ -1012,7 +1012,7 @@ See <a href="#config-test">How do I configure Log4j for
tests?</a></p>
While it is not recommended to use the <code>PatternLayout</code> in
production for security reasons, it is a good choice for tests.</p>
</div>
<div class="paragraph">
-<p>The <a href="manual/layouts.html#PatternLayout" class="xref page">Pattern
Layout</a> is used for formatting strings in a specific way.
+<p>The <a href="manual/layouts.html#pattern-layout" class="xref page">Pattern
Layout</a> is used for formatting strings in a specific way.
In the below case, it will include the timestamp, thread name, log level,
class name, and the message and
print it to the Console.
Very similar to the earlier configuration, the <code><logger></code>
defines what should be logged on
@@ -1051,7 +1051,7 @@ which level and the <code><root></code> logger
serves as a default configu
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
-<td><a href="manual/layouts.html#PatternLayout" class="xref page">Pattern
Layout</a> is used for a human-readable layout.</td>
+<td><a href="manual/layouts.html#pattern-layout" class="xref page">Pattern
Layout</a> is used for a human-readable layout.</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
diff --git a/log4j-1.2-api.html b/log4j-1.2-api.html
index c4e1f28a6a..08b5fe31da 100644
--- a/log4j-1.2-api.html
+++ b/log4j-1.2-api.html
@@ -331,8 +331,57 @@ The following Log4j 1.x methods will behave differently
when the Log4j 2 Core mo
<p>If log4j-core is not present location information will not be accurate in
calls using the Log4j 1.2 API.
The config package which attempts to convert Log4j 1.x configurations to Log4j
2 is not supported without Log4j 2.</p>
</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
<div class="paragraph">
-<p>For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>In order to use the Log4j 1.2 Bridge, additional dependencies are
required:</p>
+</div>
+<details id="log4j-1.2-api-deps">
+<summary class="title">Runtime dependencies</summary>
+<div class="content">
+<div id="_tabs_1" class="openblock tabs is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_1_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_1_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_1_maven--panel" class="tabpanel"
aria-labelledby="_tabs_1_maven">
+<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>log4j-1.2-api</artifactId>
+ <version>3.0.0-beta2</version>
+ <scope>runtime</scope>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<div id="_tabs_1_gradle--panel" class="tabpanel"
aria-labelledby="_tabs_1_gradle">
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">runtimeOnly
'org.apache.logging.log4j:log4j-1.2-api:3.0.0-beta2'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</details>
+</td>
+</tr>
+</table>
</div>
</div>
</div>
diff --git a/log4j-docker.html b/log4j-docker.html
index c03c692f5e..e5da73bb13 100644
--- a/log4j-docker.html
+++ b/log4j-docker.html
@@ -316,10 +316,10 @@ Note that docker variables are only resolved once during
logging initialization
</div>
</div>
<div class="sect1">
-<h2
id="_requirements_log4j_docker_requires_log4j_core_log4j_api_and_a_minimum_of_java_8"><a
class="anchor"
href="#_requirements_log4j_docker_requires_log4j_core_log4j_api_and_a_minimum_of_java_8"></a>Requirements
Log4j Docker requires Log4j Core, Log4j API and a minimum of Java 8.</h2>
+<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>Log4j Docker requires Log4j Core, Log4j API and a minimum of Java 8.</p>
</div>
</div>
</div>
diff --git a/log4j-flume-ng.html b/log4j-flume-ng.html
index 8d88c25fed..1c17490c07 100644
--- a/log4j-flume-ng.html
+++ b/log4j-flume-ng.html
@@ -482,10 +482,10 @@ The following dependency should be added to your pom.xml
in addition to the log4
</div>
</div>
<div class="sect1">
-<h2 id="_requirements_the_flume_appender_requires_the_log4j_2_api"><a
class="anchor"
href="#_requirements_the_flume_appender_requires_the_log4j_2_api"></a>Requirements
The Flume Appender requires the Log4J 2 API.</h2>
+<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>The Flume Appender requires the Log4J 2 API and implementation.</p>
</div>
</div>
</div>
diff --git a/log4j-iostreams.html b/log4j-iostreams.html
index 742c730f63..669da121eb 100644
--- a/log4j-iostreams.html
+++ b/log4j-iostreams.html
@@ -267,7 +267,13 @@
<h2 id="_log4j_iostreams"><a class="anchor" href="#_log4j_iostreams"></a>Log4j
IOStreams</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The IOStreams component is a <a href="javadoc/log4j-api/index.html">Log4j
API</a> extension that provides numerous classes from <a
href="http://docs.oracle.com/javase/6/docs/api/java/io/package-summary.html"><code>java.io</code></a>
that can either write to a <a
href="javadoc/log4j-api/org/apache/logging/log4j/Logger.html"><code>Logger</code></a>
while writing to another <code>OutputStream</code> or <code>Writer</code>, or
the contents read by an <code>InputStream</code> or <code>Read [...]
+<p>The IOStreams component is a
+<a href="manual/api.html" class="xref page">Log4j API</a>
+extension that provides numerous classes from
+<a
href="http://docs.oracle.com/javase/17/docs/api/java/io/package-summary.html"><code>java.io</code></a>
+that can either write to a
+<a
href="javadoc/log4j-api/org/apache/logging/log4j/Logger.html"><code>Logger</code></a>
+while writing to another <code>OutputStream</code> or <code>Writer</code>, or
the contents read by an <code>InputStream</code> or <code>Reader</code> can be
<a href="http://www.eaipatterns.com/WireTap.html">wiretapped</a> by a
<code>Logger</code>.</p>
</div>
</div>
</div>
@@ -276,8 +282,7 @@
<div class="sectionbody">
<div class="paragraph">
<p>The Log4j IOStreams API extension requires the Log4j 2 API.
-This component was introduced in Log4j 2.1.
-For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+This component was introduced in Log4j 2.1.</p>
</div>
</div>
</div>
diff --git a/log4j-jul.html b/log4j-jul.html
index 3efd35f79a..e00fedcd33 100644
--- a/log4j-jul.html
+++ b/log4j-jul.html
@@ -276,8 +276,7 @@ However, this does allow any other Log4j Provider besides
the Core provider to b
<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The JDK Logging Adapter is dependent on the Log4j API and optionally Log4j
Core.
-For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>The JDK Logging Adapter is dependent on the Log4j API and optionally Log4j
Core.</p>
</div>
</div>
</div>
diff --git a/log4j-slf4j-impl.html b/log4j-slf4j-impl.html
index 466005a38c..49949a2eba 100644
--- a/log4j-slf4j-impl.html
+++ b/log4j-slf4j-impl.html
@@ -292,8 +292,7 @@
<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The Log4j 2 SLF4J Binding has a dependency on the Log4j 2 API as well as
the SLF4J API.
-For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>The Log4j 2 SLF4J Binding has a dependency on the Log4j 2 API as well as
the SLF4J API.</p>
</div>
</div>
</div>
diff --git a/log4j-slf4j2-impl.html b/log4j-slf4j2-impl.html
index 2b9935a1a4..04f1e2b190 100644
--- a/log4j-slf4j2-impl.html
+++ b/log4j-slf4j2-impl.html
@@ -292,8 +292,7 @@
<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The Log4j 2 SLF4J Binding has a dependency on the Log4j 2 API as well as
the SLF4J API.
-For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>The Log4j 2 SLF4J Binding has a dependency on the Log4j 2 API as well as
the SLF4J API.</p>
</div>
</div>
</div>
diff --git a/log4j-spring-cloud-config-client.html
b/log4j-spring-cloud-config-client.html
index 8b84f852c0..fe1d887ffe 100644
--- a/log4j-spring-cloud-config-client.html
+++ b/log4j-spring-cloud-config-client.html
@@ -282,7 +282,7 @@
<p>SpringApplication declares a Logger.
This Logger will be initialized using Log4j’s "normal" mechanisms.
Thus, the
-<a href="manual/systemproperties.html#log4j2.configurationFile" class="xref
page"><code>log4j2.configurationFile</code></a>
+<a href="manual/systemproperties.html#log4j.configuration.location"
class="xref page"><code>log4j.configuration.location</code></a>
system property will be checked to see if a specific configuration file has
been provided, otherwise it will search for a configuration file on the
classpath.
The property may also be declare in log4j2.component.properties.</p>
</li>
@@ -414,11 +414,13 @@ However, Log4j does use Spring’s standard APIs to
access properties in th
</div>
<div class="paragraph">
<p>If more extensive authentication is required an
<code>AuthorizationProvider</code> can be implemented and its fully qualified
class name should be specified in the
-<a
href="manual/systemproperties.html#log4j2.configurationAuthorizationProvider"
class="xref page">log4j2.configurationAuthorizationProvider</a>
+<a href="manual/systemproperties.html#log4j.auth.provider" class="xref
page"><code>log4j.auth.provider</code></a>
system property, in log4j2.component.properties or in Spring’s
<code>bootstrap.yml</code> using either the
<code>log4j2.authorizationProvider</code> or
<code>logging.auth.authorizationProvider</code> key.</p>
</div>
<div class="paragraph">
-<p>For the properties required by TLS configuration see <a
href="manual/configuration.html#transport-security" class="xref page">the
Transport Security configuration</a>.</p>
+<p>For the properties required by TLS configuration see
+<a href="#manual/systemproperties
+.adoc#properties-transport-security" class="xref unresolved">the Transport
Security configuration</a>.</p>
</div>
</div>
</div>
@@ -426,8 +428,7 @@ system property, in log4j2.component.properties or in
Spring’s <code>boots
<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The Log4j 2 Spring Cloud Configuration integration has a dependency on
Log4j 2 API, Log4j 2 Core, and Spring Cloud Configuration versions
2.0.3.RELEASE or 2.1.1.RELEASE or later versions it either release series.
-For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>The Log4j 2 Spring Cloud Configuration integration has a dependency on
Log4j 2 API, Log4j 2 Core, and Spring Cloud Configuration versions
2.0.3.RELEASE or 2.1.1.RELEASE or later versions it either release series.</p>
</div>
</div>
</div>
diff --git a/log4j-to-jul.html b/log4j-to-jul.html
index 11476c23b2..67e9e57433 100644
--- a/log4j-to-jul.html
+++ b/log4j-to-jul.html
@@ -277,8 +277,7 @@ With Log4j 2 as the implementation these would normally be
formatted only when t
<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The Log4j 2 to JUL adapter is dependent on the Log4j 2 API.
-For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>The Log4j 2 to JUL adapter is dependent on the Log4j 2 API.</p>
</div>
</div>
</div>
diff --git a/log4j-to-slf4j.html b/log4j-to-slf4j.html
index 77f33fa61f..93784ab72b 100644
--- a/log4j-to-slf4j.html
+++ b/log4j-to-slf4j.html
@@ -275,8 +275,7 @@ With Log4j 2 as the implementation these would normally be
formatted only when t
<h2 id="_requirements"><a class="anchor"
href="#_requirements"></a>Requirements</h2>
<div class="sectionbody">
<div class="paragraph">
-<p>The Log4j 2 to SLF4J adapter is dependent on the Log4j 2 API and the SLF4J
API.
-For more information, see <a href="#runtime-dependencies.adoc" class="xref
unresolved">Runtime Dependencies</a>.</p>
+<p>The Log4j 2 to SLF4J adapter is dependent on the Log4j 2 API and the SLF4J
API.</p>
</div>
</div>
</div>
diff --git a/manual/appenders.html b/manual/appenders.html
index ba3c13bd43..b24b0fe752 100644
--- a/manual/appenders.html
+++ b/manual/appenders.html
@@ -330,7 +330,9 @@ For non-JDK classes, these should usually be in
a call to the <code>OutputStream.flush()</code> method is performed.</p>
</li>
<li>
-<p>if <a href="systemproperties.html#log4j2.enableDirectEncoders" class="xref
page">log4j2.enableDirectEncoders</a> is set to <code>true</code>, many Log4j
appenders use a
+<p>if
+<a href="systemproperties.html#log4j.gc.enableDirectEncoders" class="xref
page">log4j.gc.enableDirectEncoders</a>
+is set to <code>true</code>, many Log4j appenders use a
<a
href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html">ByteBuffer</a>
to format log events before sending them to the underlying resource.
Setting <code>immediateFlush</code> to <code>true</code> flushes these buffers
at each event.</p>
@@ -368,7 +370,7 @@ The AsyncAppender should be configured after the appenders
it references to allo
<a
href="https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html"><code>java.util.concurrent.ArrayBlockingQueue</code></a>
which does not require any external libraries.
Note that multi-threaded applications should exercise care when using this
appender as such: the blocking queue is susceptible to lock contention and our
-<a href="performance.html#asyncLogging" class="xref page">tests showed</a>
performance may become worse when more threads are logging concurrently.
+<a href="performance.html#async" class="xref page">tests showed</a>
performance may become worse when more threads are logging concurrently.
Consider using
<a href="async.html" class="xref page">lock-free Async Loggers</a> for optimal
performance.</p>
</div>
@@ -1347,10 +1349,8 @@ indicate which variation of the Appender is
desired.</p></td>
<code>log4j-core</code> to the new module <code>log4j-jdbc</code>.</p>
</div>
<div class="paragraph">
-<p>The JDBC Appender configured with a <code>DataSource</code> requires JNDI
support so as of release 2.17.1
-this appender will not function unless <code>log4j.jndi.enableJdbc=true</code>
is configured as a system property
-or environment variable. See the <a
href="systemproperties.html#log4j.jndi.enableJdbc" class="xref
page">log4j.jndi.enableJdbc</a> system
-property.</p>
+<p>The JDBC Appender configured with a <code>DataSource</code> requires JNDI
support so as of release 2.17.1 this appender will not function unless
<code>log4j2.enableJndiJdbc=true</code> is configured as a system property or
environment variable.
+See the <a href="systemproperties.html#log4j.jndi.enableJdbc" class="xref
page">log4j.jndi.enableJdbc</a> system property.</p>
</div>
<div class="paragraph">
<p>The JDBCAppender writes log events to a relational database table using
standard JDBC.
@@ -1971,7 +1971,8 @@ public class ConnectionFactory {
</div>
</div>
<div class="paragraph">
-<p>This appender is <a href="#manual/messages.adoc#MapMessage" class="xref
unresolved"><code>MapMessage</code></a>-aware.</p>
+<p>This appender is
+<a
href="../../2.x/manual/messages.html#MapMessage"><code>MapMessage</code></a>-aware.</p>
</div>
<div class="paragraph">
<p>The following configuration uses no layout to indicate that the appender
should match the keys of a <code>MapMessage</code> to the names of
@@ -3051,7 +3052,8 @@ collection documentation linked above for more
information.</p></td>
</tbody>
</table>
<div class="paragraph">
-<p>This appender is <a href="#manual/messages.adoc#MapMessage" class="xref
unresolved">MapMessage</a>-aware.</p>
+<p>This appender is
+<a
href="../../manual/messages.html#MapMessage"><code>MapMessage</code></a>-aware.</p>
</div>
<div class="paragraph">
<p>Here are a few sample configurations for the NoSQLAppender and MongoDB4
provider:</p>
@@ -3140,7 +3142,7 @@ The OutputStreamAppender uses an OutputStreamManager to
handle the actual I/O, a
<a href="#FileAppender">FileAppender</a> except it is always buffered (this
cannot be switched off) and internally it uses a
<code>ByteBuffer + RandomAccessFile</code> instead of a
<code>BufferedOutputStream</code>.
We saw a 20-200% performance improvement compared to FileAppender with
"bufferedIO=true" in our
-<a href="performance.html#whichAppender" class="xref page">measurements</a>.
+measurements.
Similar to the FileAppender, RandomAccessFileAppender uses a
RandomAccessFileManager to perform the file I/O. While RandomAccessFileAppender
from different Configurations cannot be shared, the RandomAccessFileManagers
can be if the Manager is accessible.
For example, two web applications in a servlet container can have their
configuration and safely write to the same file if Log4j is in a ClassLoader
that is common to both of them.</p>
</div>
@@ -4320,7 +4322,8 @@ false.</p></td>
<td class="tableblock halign-left valign-top"><p
class="tableblock">testMode</p></td>
<td class="tableblock halign-left valign-top"><p
class="tableblock">boolean</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">If true,
files are not deleted but instead a message
-is printed to the <a href="configuration.html#StatusMessages" class="xref
page">status logger</a>
+is printed to the
+<a
href="https://logging.apache.org/log4j/2.x/manual/status-logger.html">status
logger</a>
at INFO level. Use this to do a dry run to test if the configuration
works as expected. The default is false.</p></td>
</tr>
@@ -4955,8 +4958,7 @@ file attribute view.</p>
<p>The RollingRandomAccessFileAppender is similar to the standard
<a href="#RollingFileAppender">RollingFileAppender</a> except it is always
buffered (this cannot be switched off) and internally it uses a
<code>ByteBuffer + RandomAccessFile</code> instead of a
<code>BufferedOutputStream</code>.
-We saw a 20-200% performance improvement compared to RollingFileAppender with
"bufferedIO=true" in our
-<a href="performance.html#whichAppender" class="xref page">measurements</a>.
+We saw a 20-200% performance improvement compared to RollingFileAppender with
"bufferedIO=true" in our measurements.
The
<code>RollingRandomAccessFileAppender</code> writes to the file named in the
fileName parameter and rolls the file over according to the TriggeringPolicy
and the RolloverPolicy.
Similar to the RollingFileAppender, RollingRandomAccessFileAppender uses a
RollingRandomAccessFileManager to perform the file I/O and perform the rollover.
diff --git a/manual/configuration.html b/manual/configuration.html
index bb00875051..ac8a0d34ee 100644
--- a/manual/configuration.html
+++ b/manual/configuration.html
@@ -442,24 +442,6 @@ Log4j includes XML, JSON, YAML, and Java properties
formats factories.</p>
</div>
</div>
</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>The format of the configuration file changed between Log4j 1 and
Log4j 2.
-Files in the Log4j 1 format are ignored by default.</p>
-</div>
-<div class="paragraph">
-<p>To enable partial support for old configuration formats, see <a
href="migration.html#enabling-the-log4j-1-x-bridge" class="xref page">Enabling
the Log4j 1 bridge</a>.</p>
-</div>
-</td>
-</tr>
-</table>
-</div>
<div class="sect2">
<h3 id="automatic-configuration"><a class="anchor"
href="#automatic-configuration"></a><a id="AutomaticConfiguration"></a>
Configuration file location</h3>
<div class="paragraph">
@@ -1168,7 +1150,8 @@ The logger is configured to forward messages to its
parent (the root appender).<
<p>Log4j allows the configuration of custom log-level names.</p>
</div>
<div class="paragraph">
-<p>See <a href="#manual/customloglevels.adoc" class="xref unresolved">Custom
log level configuration</a> for details.</p>
+<p>See
+<a
href="https://logging.apache.org/log4j/2.x/manual/customloglevels.html#DefiningLevelsInConfiguration">Defining
custom log levels in configuration</a> for details.</p>
</div>
</dd>
<dt class="hdlist1">Filters</dt>
@@ -1480,7 +1463,7 @@ Loggers.Logger[3].AppenderRef.ref = APPENDER4</code></pre>
<div class="paragraph">
<p>In the example above, we have four logger configurations.
They differ from each other regarding the level of log messages that they
allow, whether
-<a href="layouts.html#location-information" class="xref page">location
information</a>
+<a href="layouts.html#LocationInformation" class="xref page">location
information</a>
will be printed, and which appenders will be used.
The table below summarizes the effects of each logger configuration:</p>
</div>
@@ -1682,7 +1665,7 @@ If set to <code>false</code>, Log4j will not attempt to
infer the location of th
methods.</p>
</div>
<div class="paragraph">
-<p>See <a href="layouts.html#location-information" class="xref page">Location
information</a> for more details.</p>
+<p>See <a href="layouts.html#LocationInformation" class="xref page">Location
information</a> for more details.</p>
</div>
</div>
<div class="sect3">
@@ -1697,7 +1680,8 @@ methods.</p>
<div class="sect3">
<h4 id="logger-elements-properties"><a class="anchor"
href="#logger-elements-properties"></a>Additional context properties</h4>
<div class="paragraph">
-<p>Loggers can emit additional context data that will be integrated with other
context data sources such as <a href="#manual/thread-context.adoc" class="xref
unresolved">ThreadContext</a>.</p>
+<p>Loggers can emit additional context data that will be integrated with other
context data sources such as
+<a
href="https://logging.apache.org/log4j/2.x/manual/thread-context.html">ThreadContext</a>.</p>
</div>
<div class="admonitionblock caution">
<table>
diff --git a/manual/garbagefree.html b/manual/garbagefree.html
index 71eae91e1c..f53fef2f13 100644
--- a/manual/garbagefree.html
+++ b/manual/garbagefree.html
@@ -335,10 +335,10 @@ If you use another setup (e.g., a different logging API
or implementation) this
<div class="ulist">
<ul>
<li>
-<p><a
href="#log4j2.enableThreadlocals"><code>log4j2.enableThreadlocals</code></a></p>
+<p><a
href="#log4j.enableThreadlocals"><code>log4j.enableThreadlocals</code></a></p>
</li>
<li>
-<p><a
href="#log4j2.garbagefreeThreadContextMap"><code>log4j2.garbagefreeThreadContextMap</code></a></p>
+<p><a
href="#log4j.threadContext.map.garbageFree"><code>log4j.threadContext.map.garbageFree</code></a></p>
</li>
</ul>
</div>
@@ -793,9 +793,6 @@ To understand which configuration knobs exhibit what kind
of allocation behaviou
<div class="ulist">
<ul>
<li>
-<p><a href="layouts.html#GELFLayout" class="xref
page"><code>GelfLayout</code></a></p>
-</li>
-<li>
<p><a href="json-template-layout.html#faq-garbage-free" class="xref
page"><code>JsonTemplateLayout</code></a></p>
</li>
<li>
@@ -878,7 +875,8 @@ To understand which configuration knobs exhibit what kind
of allocation behaviou
<div class="paragraph">
<p>An effort has been made to minimize impact on custom appenders that extend
<code>AbstractOutputStreamAppender</code>, but it is impossible to guarantee
that changing the superclass will not impact any and all subclasses.
Custom appenders that extend <code>AbstractOutputStreamAppender</code> should
verify that they still function correctly.
-In case there is a problem, <a href="#log4j2.enableDirectEncoders">the
<code>log4j2.enableDirectEncoders</code> system property</a> can be set to
<code>false</code> to revert to the pre-Log4j 2.6 behaviour.</p>
+In case there is a problem, the
+<a
href="#log4j.gc.enableDirectEncoders"><code>log4j.gc.enableDirectEncoders</code></a>
configuration property can be set to <code>false</code> to revert to the
pre-Log4j 2.6 behaviour.</p>
</div>
</td>
</tr>
@@ -1077,7 +1075,8 @@ If pool runs out of capacity (see <a
href="#log4j.recycler.capacity"><code>log4j
<dl>
<dt class="hdlist1"><code><Properties></code> section</dt>
<dd>
-<p>A configuration containing <a
href="configuration.html#PropertySubstitution" class="xref page">a
<code><Properties></code> section</a> will result in temporary objects
being created during steady-state logging.</p>
+<p>A configuration containing <a
href="configuration.html#property-substitution" class="xref page">a
<code><Properties></code> section</a> will result in temporary
+objects being created during steady-state logging.</p>
</dd>
</dl>
</div>
@@ -1086,7 +1085,9 @@ If pool runs out of capacity (see <a
href="#log4j.recycler.capacity"><code>log4j
<dt class="hdlist1">Asynchronous logger wait strategies</dt>
<dd>
<p>As of version <code>2.18.0</code>, the default <a href="async.html"
class="xref page">asynchronous logger</a> wait strategy (i.e.,
<code>Timeout</code>) is garbage-free while running against both LMAX Disruptor
3 and 4.
-See <a href="async.html#log4j2.asyncLoggerWaitStrategy" class="xref
page"><code>log4j2.asyncLoggerWaitStrategy</code></a> for details on predefined
wait strategies.</p>
+See
+<a href="async.html#log4j.async.logger.waitStrategy.type" class="xref
page"><code>log4j.async.logger.waitStrategy.type</code></a>
+for details on predefined wait strategies.</p>
</dd>
</dl>
</div>
@@ -1151,7 +1152,9 @@ The <code>Unbox.box(primitive)</code> methods write
directly into a <code>String
<div class="ulist">
<ul>
<li>
-<p>The <code>ThreadContext</code> map (aka. MDC) is not garbage-free by
default, but can be configured to be garbage-free by setting <a
href="#log4j2.garbagefreeThreadContextMap">the
<code>log4j2.garbagefreeThreadContextMap</code> system property</a> to
<code>true</code>.</p>
+<p>The <code>ThreadContext</code> map (aka. MDC) is not garbage-free by
default, but can be configured to be garbage-free by setting the
+<a
href="#log4j.threadContext.map.garbageFree"><code>log4j.threadContext.map.garbageFree</code></a>
+configuration property to <code>true</code>.</p>
</li>
<li>
<p>The <code>ThreadContext</code> stack (aka. NDC) is not garbage-free.</p>
@@ -1160,7 +1163,9 @@ The <code>Unbox.box(primitive)</code> methods write
directly into a <code>String
<p><a href="https://logging.apache.org/log4j/2.x/manual/scoped-context.adoc"
class="bare">https://logging.apache.org/log4j/2.x/manual/scoped-context.adoc</a>
is not garbage-free.</p>
</li>
<li>
-<p>Logging very large messages (i.e., more than <a
href="#log4j2.maxReusableMsgSize"><code>log4j2.maxReusableMsgSize</code></a>
characters, which defaults to 518), when all loggers are <a href="async.html"
class="xref page">asynchronous loggers</a>, will cause the internal
<code>StringBuilder</code> in the
+<p>Logging very large messages (i.e., more than
+<a
href="#log4j.gc.maxReusableMsgSize"><code>log4j.gc.maxReusableMsgSize</code></a>
+characters, which defaults to 518), when all loggers are <a href="async.html"
class="xref page">asynchronous loggers</a>, will cause the internal
<code>StringBuilder</code> in the
<code>RingBuffer</code> to be trimmed back to their configured maximum
size.</p>
</li>
<li>
diff --git a/manual/installation.html b/manual/installation.html
index e89f877e1b..7a45ad9be6 100644
--- a/manual/installation.html
+++ b/manual/installation.html
@@ -1089,7 +1089,8 @@ Loggers.Root.AppenderRef.ref = CONSOLE</code></pre>
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
-<td>While <a href="layouts.html#PatternLayout" class="xref page">Pattern
Layout</a> is a good first choice and preferable for tests, we recommend using
a structured format such as <a href="json-template-layout.html" class="xref
page">JSON Template Layout</a> for production deployments.</td>
+<td>While <a href="layouts.html#pattern-layout" class="xref page">Pattern
Layout</a> is a good first choice and preferable for tests, we recommend
+using a structured format such as <a href="json-template-layout.html"
class="xref page">JSON Template Layout</a> for production deployments.</td>
</tr>
</table>
</div>
diff --git a/manual/json-template-layout.html b/manual/json-template-layout.html
index 5e03d73333..267b18c79e 100644
--- a/manual/json-template-layout.html
+++ b/manual/json-template-layout.html
@@ -1580,7 +1580,7 @@ stackTraceEnabled = "stackTraceEnabled" ->
boolean</code></pre>
</div>
</div>
<div class="paragraph">
-<p>Resolver delegating to <a href="layouts.html#PatternLayout" class="xref
page"><code>PatternLayout</code></a>.</p>
+<p>Resolver delegating to <a href="layouts.html#pattern-layout" class="xref
page"><code>PatternLayout</code></a>.</p>
</div>
<div class="paragraph">
<p>The default value of <code>stackTraceEnabled</code> is inherited from the
parent
diff --git a/manual/layouts.html b/manual/layouts.html
index e7a540378b..bdbdaed3d4 100644
--- a/manual/layouts.html
+++ b/manual/layouts.html
@@ -539,9 +539,56 @@ specified value. One of: <code>ALL</code>,
<code>MINIMAL</code>, <code>NON_NUMER
<pre>0,1441617184044,DEBUG,main,"one=1, two=2,
three=3",org.apache.logging.log4j.spi.AbstractLogger,,,,org.apache.logging.log4j.core.layout.CsvLogEventLayoutTest.testLayout(CsvLogEventLayoutTest.java:98),{},[]</pre>
</div>
</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
<div class="paragraph">
-<p>Additional <a href="#runtime-dependencies.adoc" class="xref
unresolved">runtime dependencies</a> are
-required for using CSV layouts.</p>
+<p>Additional runtime dependencies are required for using CSV layouts:</p>
+</div>
+<details id="log4j-csv-deps">
+<summary class="title">Runtime dependencies</summary>
+<div class="content">
+<div id="_tabs_1" class="openblock tabs is-loading">
+<div class="content">
+<div class="ulist tablist">
+<ul>
+<li id="_tabs_1_maven" class="tab">
+<p>Maven</p>
+</li>
+<li id="_tabs_1_gradle" class="tab">
+<p>Gradle</p>
+</li>
+</ul>
+</div>
+<div id="_tabs_1_maven--panel" class="tabpanel"
aria-labelledby="_tabs_1_maven">
+<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>log4j-csv</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="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-groovy hljs"
data-lang="groovy">runtimeOnly 'org.apache.logging.log4j:log4j-csv'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</details>
+</td>
+</tr>
+</table>
</div>
</div>
</div>
@@ -739,6 +786,58 @@ Logstash <code>JSONEventLayoutV1</code></a></p>
}</code></pre>
</div>
</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>Additional runtime dependencies are required for using JSON Template
Layout:</p>
+</div>
+<details id="log4j-layout-template-json-deps">
+<summary class="title">Runtime dependencies</summary>
+<div class="content">
+<div id="_tabs_2" class="openblock tabs 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"><dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-layout-template-json</artifactId>
+ <version>3.0.0-beta2</version>
+ <scope>runtime</scope>
+</dependency></code></pre>
+</div>
+</div>
+</div>
+<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">runtimeOnly
'org.apache.logging.log4j:log4j-layout-template-json:3.0.0-beta2'</code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</details>
+</td>
+</tr>
+</table>
+</div>
<div class="paragraph">
<p>See <a href="json-template-layout.html" class="xref page">JSON Template
Layout</a> page for the complete documentation.</p>
</div>
@@ -2552,7 +2651,7 @@ If the Marker in the log event is equal to or is an
ancestor of the name specifi
<h4 id="ScriptPatternSelector"><a class="anchor"
href="#ScriptPatternSelector"></a>ScriptPatternSelector</h4>
<div class="paragraph">
<p>The ScriptPatternSelector executes a script as described in the
-<a href="configuration.html#Scripts" class="xref page">Scripts</a> section of
the Configuration chapter.
+<a href="scripts.html" class="xref page">Scripts</a> section of the
Configuration chapter.
The script is passed all the properties configured in the Properties section
of the configuration, the StrSubstitutor used by the Configuration in the
"substitutor" variables, and the log event in the "logEvent" variable, and is
expected to return the value of the PatternMatch key that should be used, or
null if the default pattern should be used.</p>
</div>
<div class="listingblock">
@@ -2872,7 +2971,9 @@ To get the most out of it, mind the following
checklist:</p>
<p>Mind <a href="#PatternLayout-gcfree">the garbage footprint of features you
use</a></p>
</li>
<li>
-<p>Don’t give too much slack to <a
href="configuration.html#log4j2.layoutStringBuilderMaxSize" class="xref
page"><code>log4j2.layoutStringBuilderMaxSize</code></a> and try to keep it
relatively tight</p>
+<p>Don’t give too much slack to
+<a href="systemproperties.html#log4j.gc.layoutStringBuilderMaxSize"
class="xref page"><code>log4j.gc.layoutStringBuilderMaxSize</code></a>
+and try to keep it relatively tight</p>
</li>
</ul>
</div>
diff --git a/manual/logsep.html b/manual/logsep.html
index a31ac44521..60739e560d 100644
--- a/manual/logsep.html
+++ b/manual/logsep.html
@@ -387,9 +387,6 @@ or environment variable. See the
configuration property.</p>
</div>
<div class="paragraph">
-<p>xref:manual/systemproperties.adoc#log4j2</p>
-</div>
-<div class="paragraph">
<p>The exact method for setting system properties depends on the container.
For Tomcat, edit <code>$CATALINA_HOME/conf/catalina.properties</code>. Consult
the
documentation for other web containers.</p>
diff --git a/manual/lookups.html b/manual/lookups.html
index a10a9352e6..65f7b0976a 100644
--- a/manual/lookups.html
+++ b/manual/lookups.html
@@ -272,7 +272,7 @@ arbitrary places. They are a particular type of Plugin that
implements
the
<a
href="../javadoc/log4j-core/org/apache/logging/log4j/core/lookup/StrLookup.html"><code>StrLookup</code></a>
interface. Information on how to use Lookups in configuration files can
-be found in the <a href="configuration.html#PropertySubstitution" class="xref
page">Property
+be found in the <a href="configuration.html#property-substitution" class="xref
page">Property
Substitution</a> section of the <a href="configuration.html" class="xref
page">Configuration</a>
page.</p>
</div>
@@ -640,7 +640,8 @@ convenient preformatted strings using the
<code>java:</code> prefix.</p>
<div class="paragraph">
<p>As of Log4j 2.15.1 JNDI operations require that
<code>log4j2.enableJndi=true</code> be set as a system property or the
corresponding environment variable for this lookup to function. See the
-<a href="configuration.html#enableJndiLookup" class="xref
page">log4j2.enableJndiLookup</a> system property.</p>
+<a href="systemproperties.html#log4j.jndi.enableLookup" class="xref
page">log4j.jndi.enableLookup</a>
+system property.</p>
</div>
<div class="paragraph">
<p>The JndiLookup allows variables to be retrieved via JNDI. By default the
@@ -878,7 +879,7 @@ RollingFileAppender for each unique value of the key named
"type" in the
MapMessage. Note that when used this way a value for "type" should be
declared in the properties declaration to provide a default value in
case the message is not a MapMessage or the MapMessage does not contain
-the key. See the <a href="configuration.html#PropertySubstitution" class="xref
page">Property
+the key. See the <a href="configuration.html#property-substitution"
class="xref page">Property
Substitution</a> section of the <a href="configuration.html" class="xref
page">Configuration</a>
page for information on how to set the default values.</p>
</div>
diff --git a/manual/performance.html b/manual/performance.html
index e451b7c3bc..b6b5bb7165 100644
--- a/manual/performance.html
+++ b/manual/performance.html
@@ -352,7 +352,9 @@ Consider the following example:</p>
</div>
</div>
<div class="paragraph">
-<p>The database query (i.e., <code>db.findUserNameById(userId)</code>) can be
a significant bottleneck if the created the log event will be discarded anyway
– maybe the <code>INFO</code> level or the associated <a
href="#manual/markers.adoc" class="xref unresolved">marker</a> is not accepted
for this package, or due to some other filtering.</p>
+<p>The database query (i.e., <code>db.findUserNameById(userId)</code>) can be
a significant bottleneck if the created the log event will be discarded anyway
– maybe the <code>INFO</code> level or the associated
+<a href="https://logging.apache.org/log4j/2.x/manual/markers.html">marker</a>
+is not accepted for this package, or due to some other filtering.</p>
</div>
<div class="ulist checklist">
<ul class="checklist">
@@ -364,7 +366,9 @@ Consider the following example:</p>
</div>
</div>
<div class="paragraph">
-<p>While this would work for cases where the message can be dropped due to
insufficient level, this approach is still prone to other filtering cases;
e.g., maybe the associated <a href="#manual/markers.adoc" class="xref
unresolved">marker</a> is not accepted.</p>
+<p>While this would work for cases where the message can be dropped due to
insufficient level, this approach is still prone to other filtering cases;
e.g., maybe the associated
+<a href="https://logging.apache.org/log4j/2.x/manual/markers.html">marker</a>
+is not accepted.</p>
</div>
</li>
<li>
diff --git a/manual/systemproperties.html b/manual/systemproperties.html
index 468351082c..21b7539baf 100644
--- a/manual/systemproperties.html
+++ b/manual/systemproperties.html
@@ -786,7 +786,9 @@ Integrators can use this to customize the shutdown order of
the JVM.</p>
</tbody>
</table>
<div class="paragraph">
-<p>Prints a stacktrace to the <a href="configuration.html#StatusMessages"
class="xref page">status logger</a> at <code>DEBUG</code> level when the
LoggerContext is started.</p>
+<p>Prints a stacktrace to the
+<a
href="https://logging.apache.org/log4j/2.x/manual/status-logger.html">status
logger</a>
+at <code>DEBUG</code> level when the LoggerContext is started.</p>
</div>
<div class="paragraph">
<p>For debug purposes only.</p>
diff --git a/sitemap.xml b/sitemap.xml
index 27fc5eed2e..14020a459a 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,186 +2,186 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://logging.apache.org/log4j/3.x/articles.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/development.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/download.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/faq.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/getting-started.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/index.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/javadoc.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-1.2-api.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-api.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-docker.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-flume-ng.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-iostreams.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-jpl.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-jul.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-slf4j-impl.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-slf4j2-impl.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-spring-cloud-config-client.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-to-jul.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/log4j-to-slf4j.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/api.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/appenders.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/architecture.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/async.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/cloud.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/configuration.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/customconfig.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/dependencyinjection.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/extending.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/filters.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/garbagefree.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/index.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/installation.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/jmx.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/json-template-layout.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/layouts.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/logsep.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/lookups.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/migration.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/performance.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/plugins.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/scripts.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/systemproperties.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/manual/usage.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/plugin-reference.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/release-notes.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
<url>
<loc>https://logging.apache.org/log4j/3.x/thanks.html</loc>
-<lastmod>2024-05-28T20:28:55.745Z</lastmod>
+<lastmod>2024-05-28T20:49:31.148Z</lastmod>
</url>
</urlset>