You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2024/08/13 18:02:17 UTC
(logging-log4j2) 01/03: Fix links and remove per-module pages (#2800)
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit c6805085c12ef2e7d11a515c435231412603e0db
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Thu Aug 8 09:15:26 2024 +0200
Fix links and remove per-module pages (#2800)
This PR:
- fixes internal links as far as IDEA can find.
- removes most `log4j-<something>.adoc` pages, if their content is available elsewhere. For example `log4j-docker` is completely described in `lookups.adoc`.
---
.../modules/ROOT/examples/hibernate/log4j2.json | 2 +-
src/site/antora/modules/ROOT/nav.adoc | 4 +-
src/site/antora/modules/ROOT/pages/faq.adoc | 2 +-
.../antora/modules/ROOT/pages/log4j-docker.adoc | 45 -----
.../antora/modules/ROOT/pages/log4j-flume-ng.adoc | 225 ---------------------
src/site/antora/modules/ROOT/pages/log4j-jpl.adoc | 27 ---
.../antora/modules/ROOT/pages/log4j-to-slf4j.adoc | 32 ---
.../ROOT/pages/manual/appenders/database.adoc | 4 +-
.../ROOT/pages/manual/appenders/message-queue.adoc | 50 +++++
.../ROOT/pages/manual/appenders/network.adoc | 2 +-
.../antora/modules/ROOT/pages/manual/async.adoc | 2 +-
.../modules/ROOT/pages/manual/configuration.adoc | 6 +-
.../antora/modules/ROOT/pages/manual/filters.adoc | 10 +-
.../modules/ROOT/pages/manual/garbagefree.adoc | 12 +-
.../ROOT/pages/manual/json-template-layout.adoc | 6 +-
.../antora/modules/ROOT/pages/manual/lookups.adoc | 2 +-
.../modules/ROOT/pages/manual/pattern-layout.adoc | 2 +-
.../modules/ROOT/pages/manual/performance.adoc | 2 +-
.../_log4j1-eol.adoc => partials/log4j1-eol.adoc} | 0
19 files changed, 78 insertions(+), 357 deletions(-)
diff --git a/src/site/antora/modules/ROOT/examples/hibernate/log4j2.json b/src/site/antora/modules/ROOT/examples/hibernate/log4j2.json
index 4859561c8c..991d2fd2c3 100644
--- a/src/site/antora/modules/ROOT/examples/hibernate/log4j2.json
+++ b/src/site/antora/modules/ROOT/examples/hibernate/log4j2.json
@@ -13,7 +13,7 @@
{
"name": "org.hibernate.SQL",
"level": "DEBUG"
- },
+ }
// Log JDBC bind parameters and extracted values
//
diff --git a/src/site/antora/modules/ROOT/nav.adoc b/src/site/antora/modules/ROOT/nav.adoc
index f9fb3cf35d..141fd0487f 100644
--- a/src/site/antora/modules/ROOT/nav.adoc
+++ b/src/site/antora/modules/ROOT/nav.adoc
@@ -64,9 +64,9 @@
* xref:development.adoc[]
.Components
-* xref:log4j-flume-ng.adoc[]
-* xref:log4j-docker.adoc[]
* xref:log4j-spring-cloud-config-client.adoc[]
+* xref:log4j-jul.adoc[]
+* xref:log4j-to-jul.adoc[]
.Related projects
* {log4j2-url}[Log4j 2]
diff --git a/src/site/antora/modules/ROOT/pages/faq.adoc b/src/site/antora/modules/ROOT/pages/faq.adoc
index 024005ca19..c50d10b234 100644
--- a/src/site/antora/modules/ROOT/pages/faq.adoc
+++ b/src/site/antora/modules/ROOT/pages/faq.adoc
@@ -135,7 +135,7 @@ This disables level-based status logger filtering and effectively allows all sta
[#separate_log_files]
== How do I dynamically write to separate log files?
-You can use xref:manual/appenders.adoc#RoutingAppender[the routing appender] to evaluate a log message and forward it to a particular appender.
+You can use xref:manual/appenders/delegating.adoc#RoutingAppender[the routing appender] to evaluate a log message and forward it to a particular appender.
[#api-tradeoffs]
== What are the trade-offs of using Log4j API versus SLF4J?
diff --git a/src/site/antora/modules/ROOT/pages/log4j-docker.adoc b/src/site/antora/modules/ROOT/pages/log4j-docker.adoc
deleted file mode 100644
index 43d208a94b..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-docker.adoc
+++ /dev/null
@@ -1,45 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-////
-
-= Log4j Docker Support
-
-Log4j supports Docker by providing a Lookup to retrieve container information.
-
-Log4j Docker module offers https://www.docker.com/[Docker]-specific utilities.
-
-The Log4j Docker support requires access to the Docker REST interface.
-In practical terms this means the application either needs access to unix:///var/run/docker.sock through a volume mount (not recommended), bind Docker to another host/port or unix socket.
-or use a proxy application to provide access.
-The https://github.com/apache/logging-log4j2/tree/main/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/log4j-spring-cloud-config-sample-application[Log4j Spring Cloud sample application] uses a socat proxy to access Docker.
-
-== Lookup Attributes
-
-Log4j Docker provides access to the following container attributes:
-
-* containerId - The full id assigned to the container.
-* containerName - The name assigned to the container.
-* imageId - The id assigned to the image.
-* imageName - The name assigned to the image.
-* shortContainerId - The first 12 characters of the container id.
-* shortImageId - The first 12 characters of the image id.
-
-Attributes may be accessed by adding `${docker:containerId}` to the configuration.
-Note that docker variables are only resolved once during logging initialization so they shouldn't be referenced with more than one `$` character.
-
-== Requirements
-
-Log4j Docker requires Log4j Core, Log4j API and a minimum of Java 8.
diff --git a/src/site/antora/modules/ROOT/pages/log4j-flume-ng.adoc b/src/site/antora/modules/ROOT/pages/log4j-flume-ng.adoc
deleted file mode 100644
index 3c6302c220..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-flume-ng.adoc
+++ /dev/null
@@ -1,225 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-////
-
-= Flume Appender
-
-The Flume Appender allows applications to send events to Flume Agents.
-
-== Remote Agent
-
-Including the Log4j flume-ng jar in your Maven-based project as a dependency should cause all the transitive dependencies necessary for the remote Agent to function to be included.
-
-== Persistent Agent
-
-The persistent agent uses Berkeley DB.
-The following dependency should be added to your pom.xml in addition to the log4j-flume-ng dependency.
-
-// TODO: use variables for dependency versions
-
-[source,xml]
-----
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>com.sleepycat</groupId>
- <artifactId>je</artifactId>
- <version>5.0.73</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>com.sleepycat</groupId>
- <artifactId>je</artifactId>
- </dependency>
- </dependencies>
- <repositories>
- <repository>
- <id>oracleReleases</id>
- <name>Oracle Released Java Packages</name>
- <url>http://download.oracle.com/maven</url>
- <layout>default</layout>
- </repository>
- </repositories>
-----
-
-== Embedded Agent
-
-The following is a sample pom file for Maven that can be used as a template for integrating the Flume Embedded Appender into an application.
-
-[source,xml]
-----
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.myapp</groupId>
- <artifactId>myapp</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>My App</name>
- <description>App to test log4j appender</description>
-
- <properties>
- <log4j.version>${Log4jReleaseVersion}</log4j.version>
- <slf4j.version>${slf4jVersion}</slf4j.version>
- <jackson.version>${jackson1Version}</jackson.version>
- </properties>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-ext</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-flume-ng</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j-impl</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-jcl</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-jaxrs</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-xc</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <dependencies>
- <!-- Log4j 2 API -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- </dependency>
- <!-- Log4j 1.x API -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j12-api</artifactId>
- </dependency>
- <!-- Log4j 2 implementation -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core</artifactId>
- </dependency>
- <!-- SLF4J to Log4j 2 binding -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>slf4j-impl</artifactId>
- </dependency>
- <!-- SLF4J API -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
- <!-- SLF4J extensions -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-ext</artifactId>
- </dependency>
- <!-- Commson Logging to Log4j 2 binding -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-jcl</artifactId>
- </dependency>
- <!-- Avro transport protocol - required for Flume -->
- <dependency>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
- <version>1.6.3</version>
- </dependency>
- <!-- Hadoop core - required by embedded Flume Agent -->
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-core</artifactId>
- <version>1.0.3</version>
- <exclusions>
- <exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>servlet-api-2.5</artifactId>
- </exclusion>
- <exclusion>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- Flume File Channel - required by embedded Flume agent -->
- <dependency>
- <groupId>org.apache.flume.flume-ng-channels</groupId>
- <artifactId>flume-file-channel</artifactId>
- <version>1.2.0</version>
- <exclusions>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
-</project>
-----
-
-== Requirements
-
-The Flume Appender requires the Log4J 2 API and implementation.
diff --git a/src/site/antora/modules/ROOT/pages/log4j-jpl.adoc b/src/site/antora/modules/ROOT/pages/log4j-jpl.adoc
deleted file mode 100644
index 87cc6e4fb7..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-jpl.adoc
+++ /dev/null
@@ -1,27 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-////
-= Log4j JDK Platform Logging Adapter
-
-The Log4j 2 JDK Logging Adapter allow to route all System.Logger events to Log4j 2 APIs.
-
-== Requirements
-
-The JDK Platform Logging Adapter is dependent on the Log4j API as well as Java 11.
-
-== Usage
-
-Simply include the Log4j 2 JDK Platform Logging Adapter jar along with the Log4j2 jars to cause all System.Logger logging to be handled by Log4j 2.
diff --git a/src/site/antora/modules/ROOT/pages/log4j-to-slf4j.adoc b/src/site/antora/modules/ROOT/pages/log4j-to-slf4j.adoc
deleted file mode 100644
index 3996e4ea0e..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-to-slf4j.adoc
+++ /dev/null
@@ -1,32 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-////
-= Log4j to SLF4J Adapter
-
-The Log4j 2 to SLF4J Adapter allows applications coded to the Log4j 2 API to be routed to SLF4J.
-Use of this adapter may cause some loss of performance as the Log4j 2 Messages must be formatted before they can be passed to SLF4J.
-With Log4j 2 as the implementation these would normally be formatted only when they are accessed by a Filter or Appender.
-
-== Requirements
-
-The Log4j 2 to SLF4J adapter is dependent on the Log4j 2 API and the SLF4J API.
-
-== Usage
-
-Include this jar, the SLF4J jar(s) and an SLF4J logging implementation jar together.
-Configure the logging implementation as required.
-
-Use of the SLF4J adapter (log4j-to-slf4j-2.x.jar) together with the SLF4J bridge (log4j-slf4j-impl-2.x.jar) should never be attempted as it will cause events to endlessly be routed between SLF4J and Log4j 2.
diff --git a/src/site/antora/modules/ROOT/pages/manual/appenders/database.adoc b/src/site/antora/modules/ROOT/pages/manual/appenders/database.adoc
index 313164348a..b4c295e22e 100644
--- a/src/site/antora/modules/ROOT/pages/manual/appenders/database.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/appenders/database.adoc
@@ -87,7 +87,7 @@ for a list of available type converters.
a|
If set, the value will be added **directly** in the insert statement of the database-specific query language.
-[CAUTION]
+[WARNING]
====
This value is added as-is, without any validation.
Never use user-provided data to determine its value.
@@ -100,7 +100,7 @@ a|
It specifies the database-specific parameter marker to use.
Otherwise, the default parameter marker for the database language will be used.
-[CAUTION]
+[WARNING]
====
This value is added as-is, without any validation.
Never use user-provided data to determine its value.
diff --git a/src/site/antora/modules/ROOT/pages/manual/appenders/message-queue.adoc b/src/site/antora/modules/ROOT/pages/manual/appenders/message-queue.adoc
index 1c19511b8a..4b18de0887 100644
--- a/src/site/antora/modules/ROOT/pages/manual/appenders/message-queue.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/appenders/message-queue.adoc
@@ -299,6 +299,56 @@ runtimeOnly 'org.apache.flume:flume-ng-embedded-agent:{flume-version}'
xref:plugin-reference.adoc#org-apache-logging-log4j_log4j-flume-ng_org-apache-logging-log4j-flume-appender-FlumeAppender[{plugin-reference-marker} Plugin reference for `Flume`]
+To use the Flume Appender <<FlumeAppender-mode-PERSISTENT,PERSISTENT mode>>, you need the following additional dependency:
+
+[tabs]
+====
+Maven::
++
+[source,xml,subs="+attributes"]
+----
+<dependency>
+ <groupId>com.sleepycat</groupId>
+ <artifactId>je</artifactId>
+ <version>{je-version}</version>
+ <scope>runtime</scope>
+</dependency>
+----
+
+Gradle::
++
+[source,groovy]
+----
+runtimeOnly 'com.sleepycat:je:{je-version}'
+----
+====
+
+If you use the Flume Appender in <<FlumeAppender-mode-EMBEDDED,EMBEDDED mode>>, you need to add the `flume-ng-embedded-agent` dependency below and all the channel and sink implementation you plan to use.
+
+See https://flume.apache.org/releases/content/1.11.0/FlumeDeveloperGuide.html#embedded-agent[Flume Embedded Agent] documentation for more details.
+
+[tabs]
+====
+Maven::
++
+[source,xml,subs="+attributes"]
+----
+<dependency>
+ <groupId>org.apache.flume</groupId>
+ <artifactId>flume-ng-embedded-agent</artifactId>
+ <version>{flume-version}</version>
+ <scope>runtime</scope>
+</dependency>
+----
+
+Gradle::
++
+[source,groovy]
+----
+runtimeOnly 'org.apache.flume:flume-ng-embedded-agent:{flume-version}'
+----
+====
+
[#Agent]
=== Agent Addresses
diff --git a/src/site/antora/modules/ROOT/pages/manual/appenders/network.adoc b/src/site/antora/modules/ROOT/pages/manual/appenders/network.adoc
index 8f3d15be88..edb70569f5 100644
--- a/src/site/antora/modules/ROOT/pages/manual/appenders/network.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/appenders/network.adoc
@@ -425,7 +425,7 @@ include::example$manual/appenders/network/http.properties[tag=appender]
<1> This HTTP header is evaluated once at configuration time.
<2> This HTTP header is evaluated at each log event.
-[[SMTPAppender]]
+[#SmtpAppender]
== SMTP Appender
The SMTP writes log events to an e-mail service using
diff --git a/src/site/antora/modules/ROOT/pages/manual/async.adoc b/src/site/antora/modules/ROOT/pages/manual/async.adoc
index b14fedb58c..407fa868b3 100644
--- a/src/site/antora/modules/ROOT/pages/manual/async.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/async.adoc
@@ -23,7 +23,7 @@ Log4j offers out-of-the-box two different asynchronous logging solutions:
Asynchronous appender::
A classical queue-based asynchronous appender, which is available since Log4j 1.
+
-See xref:manual/appenders.adoc#AsyncAppender[Asynchronous appender] for more details.
+See xref:manual/appenders/delegating.adoc#AsyncAppender[Asynchronous appender] for more details.
Asynchronous loggers::
Asynchronous loggers are a new feature available since Log4j 2.
diff --git a/src/site/antora/modules/ROOT/pages/manual/configuration.adoc b/src/site/antora/modules/ROOT/pages/manual/configuration.adoc
index 63d2a07d09..275537024f 100644
--- a/src/site/antora/modules/ROOT/pages/manual/configuration.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/configuration.adoc
@@ -246,7 +246,7 @@ We will cover them while <<configuring-loggers, configuring loggers>>.
[[Appenders]] Appenders::
xref:manual/appenders.adoc[] are the exit point of the logging pipeline.
They decide which resource (console, file, database, or similar) the log event is sent to.
-In the examples of this chapter, we will only use the xref:manual/appenders.adoc#consoleappender[console appender] and the xref:manual/appenders.adoc#fileappender[file appender].
+In the examples of this chapter, we will only use the xref:manual/appenders.adoc#ConsoleAppender[console appender] and the xref:manual/appenders/file.adoc[file appender].
Layouts::
xref:manual/layouts.adoc[] tell appenders how to format the log event: text, JSON, XML, or similar.
@@ -947,8 +947,8 @@ See xref:manual/lookups.adoc#evaluation-contexts[lookup evaluation contexts] for
[NOTE]
====
The
-xref:manual/appenders.adoc#Routes[`Route`] component of the
-xref:manual/appenders.adoc#RoutingAppender[`RoutingAppender`]
+xref:manual/appenders/delegating.adoc#Routes[`Route`] component of the
+xref:manual/appenders/delegating.adoc#RoutingAppender[Routing Appender]
is a different case altogether.
The attributes of its children are expanded at runtime, but are not expanded at configuration time.
diff --git a/src/site/antora/modules/ROOT/pages/manual/filters.adoc b/src/site/antora/modules/ROOT/pages/manual/filters.adoc
index 2300ad1386..2789db63c5 100644
--- a/src/site/antora/modules/ROOT/pages/manual/filters.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/filters.adoc
@@ -114,7 +114,7 @@ will not be performed for disabled log statements.
* this stage precedes the asynchronous calls performed by either
xref:manual/async.adoc[asynchronous loggers]
or
-xref:manual/appenders.adoc#AsyncAppender[asynchronous appenders].
+xref:manual/appenders/delegating.adoc#AsyncAppender[asynchronous appenders].
====
[#logger-config-stage]
@@ -227,7 +227,7 @@ All standard appenders implement `Filterable`.
[NOTE]
====
Some appenders like the
-xref:manual/appenders.adoc#AsyncAppender[asynchronous appender]
+xref:manual/appenders/delegating.adoc#AsyncAppender[asynchronous appender]
use appender references to transfer log events to other appenders.
In such a case, the filtering process goes back to the <<appender-control-stage,`AppenderControl` stage>>.
====
@@ -529,7 +529,7 @@ the `LevelMatchFilter` supports the following parameter:
[TIP]
====
If you wish to use a different log file for each log level, you should also use a
-xref:manual/appenders.adoc#RoutingAppender[`Routing` appender] together with the
+xref:manual/appenders/delegating.adoc#RoutingAppender[`Routing` appender] together with the
xref:manual/lookups.adoc#EventLookup[`${event:Level}` lookup].
Such a solution will ensure that:
@@ -1082,7 +1082,7 @@ to modify the ``KeyValuePair``s without restarting your application.
xref:plugin-reference.adoc#org-apache-logging-log4j_log4j-core_org-apache-logging-log4j-core-filter-StructuredDataFilter[📖 Plugin reference for `StructuredDataFilter`]
-[#ContextMapFilter]
+[#ThreadContextMapFilter]
==== `ContextMapFilter`
The `ContextMapFilter` works in the same way as the <<MapFilter>> above,
@@ -1175,7 +1175,7 @@ xref:plugin-reference.adoc#org-apache-logging-log4j_log4j-core_org-apache-loggin
[#MutableThreadContextMapFilter]
==== `MutableContextMapFilter`
-The `MutableContextMapFilter` is an alternative version of <<ContextMapFilter>> that also uses the
+The `MutableContextMapFilter` is an alternative version of <<ThreadContextMapFilter>> that also uses the
{log4j2-url}/manual/thread-context.html[context data map]
to filter messages, but externalizes the <<configuration-map>>, so it can be kept in a separate location.
diff --git a/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc b/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc
index 8feaeeda77..a18ebba3f2 100644
--- a/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc
@@ -95,13 +95,13 @@ The following xref:manual/appenders.adoc[appenders] are garbage-free during stea
// Maintain the alphabetical ordering while making changes, please!
* xref:manual/appenders.adoc#ConsoleAppender[`ConsoleAppender`]
-* xref:manual/appenders.adoc#FileAppender[`FileAppender`]
-* xref:manual/appenders.adoc#MemoryMappedFileAppender[`MemoryMappedFileAppender`]
-* xref:manual/appenders.adoc#RandomAccessFileAppender[`RandomAccessFileAppender`]
-* xref:manual/appenders.adoc#RollingFileAppender[`RollingFileAppender`] (except during rollover)
-* xref:manual/appenders.adoc#RollingRandomAccessFileAppender[`RollingRandomAccessFileAppender`] (except during rollover)
+* xref:manual/appenders/file.adoc#FileAppender[`FileAppender`]
+* xref:manual/appenders/file.adoc#MemoryMappedFileAppender[`MemoryMappedFileAppender`]
+* xref:manual/appenders/file.adoc#RandomAccessFileAppender[`RandomAccessFileAppender`]
+* xref:manual/appenders/rolling-file.adoc#RollingFileAppender[`RollingFileAppender`] (except during rollover)
+* xref:manual/appenders/rolling-file.adoc#RollingRandomAccessFileAppender[`RollingRandomAccessFileAppender`] (except during rollover)
-Any other appender not shared in the above list (including xref:manual/appenders.adoc#AsyncAppender[`AsyncAppender`]) is not garbage-free.
+Any other appender not shared in the above list (including xref:manual/appenders/delegating.adoc#AsyncAppender[`AsyncAppender`]) is not garbage-free.
.Implementation notes
[%collapsible]
diff --git a/src/site/antora/modules/ROOT/pages/manual/json-template-layout.adoc b/src/site/antora/modules/ROOT/pages/manual/json-template-layout.adoc
index 188b910747..7f55775a6f 100644
--- a/src/site/antora/modules/ROOT/pages/manual/json-template-layout.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/json-template-layout.adoc
@@ -931,7 +931,7 @@ Resolve the logger's fully qualified class name:
[#event-template-resolver-main]
===== `main`
-Performs xref:manual/lookups.adoc#AppMainArgsLookup[Main Argument Lookup] for the given `index` or `key`
+Performs xref:manual/lookups.adoc#MainMapLookup[Main Argument Lookup] for the given `index` or `key`
.`main` event template resolver grammar
[source]
@@ -1658,13 +1658,13 @@ xref:manual/lookups.adoc[] are intended as a very generic, convenience utility t
|xref:manual/lookups.adoc#LowerLookup[Lower Lookup]
|<<event-template-resolver-caseConverter>>
-|xref:manual/lookups.adoc#AppMainArgsLookup[Main Arguments Lookup]
+|xref:manual/lookups.adoc#MainMapLookup[Main Arguments Lookup]
|<<event-template-resolver-main>>
|xref:manual/lookups.adoc#MapLookup[Map Lookup]
|<<event-template-resolver-map>>
-|xref:manual/lookups.adoc#marker-lookup[Marker Lookup]
+|xref:manual/lookups.adoc#MarkerLookup[Marker Lookup]
|<<event-template-resolver-marker>>
|xref:manual/lookups.adoc#UpperLookup[Upper Lookup]
diff --git a/src/site/antora/modules/ROOT/pages/manual/lookups.adoc b/src/site/antora/modules/ROOT/pages/manual/lookups.adoc
index 0f0acfee21..5719579a57 100644
--- a/src/site/antora/modules/ROOT/pages/manual/lookups.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/lookups.adoc
@@ -360,7 +360,7 @@ See <<lookups-patterns>> for more information.
| `docker:<key>`
where `<key>` is one of the <<DockerLookup-keys>>.
-| Dependency | xref:log4j-docker.adoc[]
+| Dependency | `log4j-docker`
|===
Docker Lookup queries https://docs.docker.com/engine/api/[the API of the Docker Engine] running your container.
diff --git a/src/site/antora/modules/ROOT/pages/manual/pattern-layout.adoc b/src/site/antora/modules/ROOT/pages/manual/pattern-layout.adoc
index 166cbeac92..17d3f2d673 100644
--- a/src/site/antora/modules/ROOT/pages/manual/pattern-layout.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/pattern-layout.adoc
@@ -1735,7 +1735,7 @@ xref:manual/lookups.adoc[] are intended as a very generic, convenience utility t
|xref:manual/lookups.adoc#MapLookup[Map Lookup]
|<<converter-map>>
-|xref:manual/lookups.adoc#marker-lookup[Marker Lookup]
+|xref:manual/lookups.adoc#MarkerLookup[Marker Lookup]
|<<converter-marker>>
|===
=====
diff --git a/src/site/antora/modules/ROOT/pages/manual/performance.adoc b/src/site/antora/modules/ROOT/pages/manual/performance.adoc
index 738782931e..4b52fff0b0 100644
--- a/src/site/antora/modules/ROOT/pages/manual/performance.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/performance.adoc
@@ -164,7 +164,7 @@ Their aim is to return from a `log()` call to the application as soon as possibl
[#async-appender]
===== Asynchronous appender
-The xref:manual/appenders.adoc#AsyncAppender[asynchronous appender] accepts references to other appenders and causes log events to be written to them on a separate thread.
+The xref:manual/appenders/delegating.adoc#AsyncAppender[asynchronous appender] accepts references to other appenders and causes log events to be written to them on a separate thread.
The backing queue uses `ArrayBlockingQueue` by default, though it can be replaced with a better performing one suitable for your use case.
[#gcfree]
diff --git a/src/site/antora/modules/ROOT/pages/_log4j1-eol.adoc b/src/site/antora/modules/ROOT/partials/log4j1-eol.adoc
similarity index 100%
rename from src/site/antora/modules/ROOT/pages/_log4j1-eol.adoc
rename to src/site/antora/modules/ROOT/partials/log4j1-eol.adoc