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/07 08:50:23 UTC
(logging-log4j2) 01/01: Fix links and remove per-module pages
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch doc/2.x/cleanup
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 5ebdafdbbb56a91663ab0ffad414b023a9fe0cbf
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Tue Aug 6 14:11:43 2024 +0200
Fix links and remove per-module pages
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`.
---
pom.xml | 14 ++
src/site/antora/antora.tmpl.yml | 2 +
src/site/antora/antora.yml | 2 +
.../modules/ROOT/examples/hibernate/log4j2.json | 2 +-
.../manual/appenders/database/nosql-couch.json | 3 +-
src/site/antora/modules/ROOT/nav.adoc | 5 -
src/site/antora/modules/ROOT/pages/faq.adoc | 4 +-
src/site/antora/modules/ROOT/pages/jakarta.adoc | 4 +-
.../antora/modules/ROOT/pages/log4j-cassandra.adoc | 20 --
.../antora/modules/ROOT/pages/log4j-couchdb.adoc | 46 -----
.../antora/modules/ROOT/pages/log4j-docker.adoc | 53 -----
.../antora/modules/ROOT/pages/log4j-flume-ng.adoc | 230 ---------------------
.../ROOT/pages/log4j-spring-cloud-config.adoc | 17 --
.../ROOT/pages/manual/appenders/message-queue.adoc | 51 ++++-
.../ROOT/pages/manual/appenders/network.adoc | 2 +-
.../modules/ROOT/pages/manual/architecture.adoc | 2 +-
.../antora/modules/ROOT/pages/manual/async.adoc | 2 +-
.../modules/ROOT/pages/manual/configuration.adoc | 6 +-
.../modules/ROOT/pages/manual/customconfig.adoc | 2 +-
.../antora/modules/ROOT/pages/manual/filters.adoc | 10 +-
.../modules/ROOT/pages/manual/flowtracing.adoc | 2 +-
.../modules/ROOT/pages/manual/garbagefree.adoc | 12 +-
.../ROOT/pages/manual/json-template-layout.adoc | 6 +-
.../antora/modules/ROOT/pages/manual/lookups.adoc | 2 +-
.../antora/modules/ROOT/pages/manual/messages.adoc | 4 +-
.../modules/ROOT/pages/manual/pattern-layout.adoc | 2 +-
.../modules/ROOT/pages/manual/performance.adoc | 2 +-
.../antora/modules/ROOT/pages/manual/plugins.adoc | 2 +-
.../modules/ROOT/pages/migrate-from-log4j1.adoc | 29 ++-
src/site/antora/modules/ROOT/pages/soa.adoc | 4 +-
.../_log4j1-eol.adoc => partials/log4j1-eol.adoc} | 0
src/site/resources/.htaccess | 16 +-
32 files changed, 125 insertions(+), 433 deletions(-)
diff --git a/pom.xml b/pom.xml
index bfad1de52e..4c5350f64a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -336,10 +336,12 @@
<site-commons-logging.version>1.3.3</site-commons-logging.version>
<site-conversant.version>1.2.21</site-conversant.version>
<site-disruptor.version>4.0.0</site-disruptor.version>
+ <site-flume.version>1.11.0</site-flume.version>
<site-jackson.version>2.17.2</site-jackson.version>
<site-jansi.version>1.18</site-jansi.version>
<site-javax-mail.version>1.6.2</site-javax-mail.version>
<site-jctools.version>4.0.5</site-jctools.version>
+ <site-je.version>18.3.12</site-je.version>
<site-jeromq.version>0.6.0</site-jeromq.version>
<site-kafka.version>3.8.0</site-kafka.version>
<site-log4j-api.version>2.23.1</site-log4j-api.version>
@@ -765,6 +767,12 @@
<version>${site-disruptor.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.flume</groupId>
+ <artifactId>flume-ng-embedded-agent</artifactId>
+ <version>${site-flume.version}</version>
+ </dependency>
+
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
@@ -790,6 +798,12 @@
<version>${site-jctools.version}</version>
</dependency>
+ <dependency>
+ <groupId>com.sleepycat</groupId>
+ <artifactId>je</artifactId>
+ <version>${site-je.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.zeromq</groupId>
<artifactId>jeromq</artifactId>
diff --git a/src/site/antora/antora.tmpl.yml b/src/site/antora/antora.tmpl.yml
index 5aa3639451..8ec9a597b2 100644
--- a/src/site/antora/antora.tmpl.yml
+++ b/src/site/antora/antora.tmpl.yml
@@ -57,10 +57,12 @@ asciidoc:
commons-logging-version: "${site-commons-logging.version}"
conversant-version: "${site-conversant.version}"
disruptor-version: "${site-disruptor.version}"
+ flume-version: "${site-flume.version}"
jackson-version: "${site-jackson.version}"
jansi-version: "${site-jansi.version}"
javax-mail-version: "${site-javax-mail.version}"
jctools-version: "${site-jctools.version}"
+ je-version: "${site-je.version}"
jeromq-version: "${site-jeromq.version}"
kafka-version: "${site-kafka.version}"
log4j-api-version: "${log4j-api.version}"
diff --git a/src/site/antora/antora.yml b/src/site/antora/antora.yml
index 9cb1b83df1..21652d7e98 100644
--- a/src/site/antora/antora.yml
+++ b/src/site/antora/antora.yml
@@ -57,10 +57,12 @@ asciidoc:
commons-logging-version: "1.2.3-commons-logging"
conversant-version: "1.2.3-conversant"
disruptor-version: "1.2.3-disruptor"
+ flume-version: "1.2.3-flume"
jackson-version: "1.2.3-jackson"
jansi-version: "1.2.3-jansi"
javax-mail-version: "1.2.3-javax-mail"
jctools-version: "1.2.3-jctools"
+ je-version: "1.2.3-je"
jeromq-version: "1.2.3-jeromq"
kafka-version: "1.2.3-kafka"
log4j-api-version: "1.2.3-api"
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/examples/manual/appenders/database/nosql-couch.json b/src/site/antora/modules/ROOT/examples/manual/appenders/database/nosql-couch.json
index 19fb3f59c2..808158d121 100644
--- a/src/site/antora/modules/ROOT/examples/manual/appenders/database/nosql-couch.json
+++ b/src/site/antora/modules/ROOT/examples/manual/appenders/database/nosql-couch.json
@@ -12,8 +12,7 @@
"port": 5984,
"databaseName": "logging"
}
- }
- // end::appender[]
+ // end::appender[],
},
"Loggers": {
"Root": {
diff --git a/src/site/antora/modules/ROOT/nav.adoc b/src/site/antora/modules/ROOT/nav.adoc
index ee4ee13740..df6f0077bb 100644
--- a/src/site/antora/modules/ROOT/nav.adoc
+++ b/src/site/antora/modules/ROOT/nav.adoc
@@ -77,13 +77,8 @@
* xref:development.adoc[]
.Components
-* xref:log4j-cassandra.adoc[]
-* xref:log4j-couchdb.adoc[]
-* xref:log4j-docker.adoc[]
-* xref:log4j-flume-ng.adoc[]
* xref:log4j-iostreams.adoc[]
* xref:log4j-spring-boot.adoc[]
-* xref:log4j-spring-cloud-config.adoc[]
* xref:log4j-spring-cloud-config-client.adoc[]
* xref:log4j-jul.adoc[]
* xref:log4j-to-jul.adoc[]
diff --git a/src/site/antora/modules/ROOT/pages/faq.adoc b/src/site/antora/modules/ROOT/pages/faq.adoc
index 7e324d7b84..7a17111df5 100644
--- a/src/site/antora/modules/ROOT/pages/faq.adoc
+++ b/src/site/antora/modules/ROOT/pages/faq.adoc
@@ -37,7 +37,7 @@ You can also specify the full path of the configuration file using a system prop
That property can also be included in a classpath resource file named `log4j2.component.properties`.
Web applications can specify the Log4j configuration file location with a servlet context parameter.
-See xref:jakarta.adoc#ContextParams[the related page on web applications].
+See xref:jakarta.adoc#log4jConfiguration[the related page on web applications].
Refer to xref:manual/configuration.adoc[the Configuration page] for further details.
@@ -135,7 +135,7 @@ This disables level-based xref:manual/status-logger.adoc[] filtering and effecti
[#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/jakarta.adoc b/src/site/antora/modules/ROOT/pages/jakarta.adoc
index 1bca124fbc..2cb31bda57 100644
--- a/src/site/antora/modules/ROOT/pages/jakarta.adoc
+++ b/src/site/antora/modules/ROOT/pages/jakarta.adoc
@@ -34,7 +34,7 @@ but events related to the application emitted by a **shared** library (e.g. JPA
To diagnose a problem with the application, you might need to look into multiple log files.
Separate log files::
Each application must use a **different** log file to prevent problems with concurrent access to the same file by multiple applications.
-Problems may arise, especially if xref:manual/appenders.adoc#rollingfileappender[rolling file appender] is used.
+Problems may arise, especially if a xref:manual/appenders/rolling-file.adoc[rolling file appender] is used.
Lifecycle::
Web applications have a different lifecycle from the application server.
Additional care is required to stop Log4j Core when the application is stopped.
@@ -540,7 +540,7 @@ include::example$manual/webapp/log4j2-single.properties[tag=global]
* Logging events to a separate appender for each application.
In this case, you can use
-xref:manual/appenders.adoc#RoutingAppender[routing appender]
+xref:manual/appenders/delegating.adoc#RoutingAppender[routing appender]
to separate the events.
This kind of configuration might be used on the development server together with the
xref:manual/pattern-layout.adoc[human-friendly Pattern Layout]:
diff --git a/src/site/antora/modules/ROOT/pages/log4j-cassandra.adoc b/src/site/antora/modules/ROOT/pages/log4j-cassandra.adoc
deleted file mode 100644
index 292fb6d5d1..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-cassandra.adoc
+++ /dev/null
@@ -1,20 +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.
-////
-
-= Cassandra Appender
-
-The Cassandra Appender allow applications to send events to Apache Cassandra repositories.
diff --git a/src/site/antora/modules/ROOT/pages/log4j-couchdb.adoc b/src/site/antora/modules/ROOT/pages/log4j-couchdb.adoc
deleted file mode 100644
index 05cb0ae7c0..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-couchdb.adoc
+++ /dev/null
@@ -1,46 +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.
-////
-
-// TODO: use properties for dynamic dependency versions
-
-= CouchDB Appender
-
-https://couchdb.apache.org/[Apache CouchDB] is supported through the http://www.lightcouch.org/[LightCouch] driver.
-
-[source,xml]
-----
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.lightcouch</groupId>
- <artifactId>lightcouch</artifactId>
- <version>0.0.6</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.lightcouch</groupId>
- <artifactId>lightcouch</artifactId>
- </dependency>
- </dependencies>
-----
-
-== Requirements
-
-The CouchDB Appender is dependent on the Log4j 2 API and implementation.
-
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 a346c8ebb7..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-docker.adoc
+++ /dev/null
@@ -1,53 +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
-
-Log4j Docker module offers https://www.docker.com/[Docker]-specific utilities.
-
-[#install]
-== Installation
-
-You need to add the following additional runtime dependency to your build to use Log4j Docker:
-
-[tabs]
-====
-Maven::
-+
-[source,xml,subs="+attributes"]
-----
-<dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-docker</artifactId>
- <version>{log4j-core-version}</version>
- <scope>runtime</scope>
-</dependency>
-----
-
-Gradle::
-+
-[source,groovy,subs="+attributes"]
-----
-runtimeOnly 'org.apache.logging.log4j:log4j-docker:{log4j-core-version}'
-----
-====
-
-[#features]
-== Features
-
-Log4j Docker provides xref:manual/lookups.adoc#DockerLookup[Docker Lookup] that queries https://docs.docker.com/engine/api/[the API of the Docker Engine] running your container.
-You can use it to inject Docker-environment specific values (container ID, image name, etc.) in xref:manual/configuration.adoc#property-substitution[property substitutions].
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 4fb6ff80bb..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-flume-ng.adoc
+++ /dev/null
@@ -1,230 +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-1.2-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-spring-cloud-config.adoc b/src/site/antora/modules/ROOT/pages/log4j-spring-cloud-config.adoc
deleted file mode 100644
index df9c6348cf..0000000000
--- a/src/site/antora/modules/ROOT/pages/log4j-spring-cloud-config.adoc
+++ /dev/null
@@ -1,17 +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 Spring Cloud Config
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 235f919c74..9dd92d0ee1 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
@@ -248,6 +248,56 @@ runtimeOnly 'org.apache.logging.log4j:log4j-flume-ng'
----
====
+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
@@ -1147,7 +1197,6 @@ for more details.
xref:plugin-reference.adoc#org-apache-logging-log4j_log4j-core_org-apache-logging-log4j-core-appender-mom-jeromq-JeroMqAppender[{plugin-reference-marker} Plugin reference for `JeroMQ`]
-
Additional runtime dependencies are required to use the JeroMQ Appender:
[tabs]
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 a78df516b0..f030a01408 100644
--- a/src/site/antora/modules/ROOT/pages/manual/appenders/network.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/appenders/network.adoc
@@ -424,7 +424,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/architecture.adoc b/src/site/antora/modules/ROOT/pages/manual/architecture.adoc
index 3c3b85e647..9af7d9fb49 100644
--- a/src/site/antora/modules/ROOT/pages/manual/architecture.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/architecture.adoc
@@ -781,7 +781,7 @@ that handles the low-level access to the external resource and an `Appender` tha
Managers that share the same resource are shared between appenders regardless of the `Configuration` or `LoggerContext` of the appenders.
For example
-xref:manual/appenders.adoc#FileAppender[`FileAppender`]s
+xref:manual/appenders/file.adoc[file appenders]s
with the same `fileName` attribute all share the same
link:../javadoc/log4j-core/org/apache/logging/log4j/core/appender/FileManager.html[`FileManager`].
diff --git a/src/site/antora/modules/ROOT/pages/manual/async.adoc b/src/site/antora/modules/ROOT/pages/manual/async.adoc
index 49a5e6e24b..9916735195 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 bb675466e7..7a0e738e41 100644
--- a/src/site/antora/modules/ROOT/pages/manual/configuration.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/configuration.adoc
@@ -244,7 +244,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.
@@ -939,8 +939,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/customconfig.adoc b/src/site/antora/modules/ROOT/pages/manual/customconfig.adoc
index fc7f00881d..f6583ed5c2 100644
--- a/src/site/antora/modules/ROOT/pages/manual/customconfig.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/customconfig.adoc
@@ -112,7 +112,7 @@ This task should ideally be delegated to <<Configurator>>.
Though there are cases where the provided convenience methods fall short of:
* Custom xref:manual/plugins.adoc#core[plugins that are declared to be represented in a configuration]
-* Custom subcomponents (e.g., a xref:manual/appenders.adoc#TriggeringPolicies[triggering policy] for xref:manual/appenders.adoc#RollingFileAppender[`RollingFileAppender`])
+* Custom subcomponents (e.g., a xref:manual/appenders/rolling-file.adoc#TriggeringPolicy[triggering policy] for xref:manual/appenders/rolling-file.adoc#RollingFileAppender[rolling file appenders])
For those, you can use the generic link:../javadoc/log4j-core/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.html#newComponent()[`ConfigurationBuilder#newComponent()`] method.
diff --git a/src/site/antora/modules/ROOT/pages/manual/filters.adoc b/src/site/antora/modules/ROOT/pages/manual/filters.adoc
index 6095ddaf7d..2bee5bbd90 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:
@@ -1073,7 +1073,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,
@@ -1166,7 +1166,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
xref:manual/thread-context.adoc[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/flowtracing.adoc b/src/site/antora/modules/ROOT/pages/manual/flowtracing.adoc
index 486d64b7d4..fa3e0535d3 100644
--- a/src/site/antora/modules/ROOT/pages/manual/flowtracing.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/flowtracing.adoc
@@ -18,7 +18,7 @@
= Flow Tracing
xref:manual/api.adoc[Log4j API] provides convenience logging methods to aid the tracking of the data flow through an application, which is referred to as *flow tracing*.
-<<impl,Logging implementations>> can choose to <<log-events,generate specialized log events>> allowing users to handle these messages different from the rest – see <<example>>.
+<<impl,Logging implementations>> can choose to <<impl-log4j-log-events,generate specialized log events>> allowing users to handle these messages different from the rest – see <<example>>.
Flow tracing is known to help with the following use cases:
diff --git a/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc b/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc
index 87feb17eaf..9f366d743d 100644
--- a/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/garbagefree.adoc
@@ -96,13 +96,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 ba31937fc0..02f47221de 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
@@ -957,7 +957,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]
@@ -1686,13 +1686,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 fcfa533878..c6adc44abf 100644
--- a/src/site/antora/modules/ROOT/pages/manual/lookups.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/lookups.adoc
@@ -364,7 +364,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/messages.adoc b/src/site/antora/modules/ROOT/pages/manual/messages.adoc
index eb143526ec..2e123a8022 100644
--- a/src/site/antora/modules/ROOT/pages/manual/messages.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/messages.adoc
@@ -234,8 +234,8 @@ It supports following formats:
Some appenders handle ``MapMessage``s differently when there is no layout:
* JMS Appender converts to a JMS `javax.jms.MapMessage`
-* xref:manual/appenders.adoc#JDBCAppender[JDBC Appender] converts to values in an `SQL INSERT` statement
-* xref:manual/appenders.adoc#NoSQLAppenderMongoDB[MongoDB NoSQL provider] converts to fields in a MongoDB object
+* xref:manual/appenders/database.adoc#JdbcAppender[JDBC Appender] converts to values in an `SQL INSERT` statement
+* xref:manual/appenders/database.adoc#MongoDbProvider[MongoDB NoSQL provider] converts to fields in a MongoDB object
[#MapMessage-JsonTemplateLayout]
===== JSON Template Layout
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 f873e0b2f9..dcf5b29b53 100644
--- a/src/site/antora/modules/ROOT/pages/manual/pattern-layout.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/pattern-layout.adoc
@@ -1731,7 +1731,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 1a95450f9f..4ec9cb7c72 100644
--- a/src/site/antora/modules/ROOT/pages/manual/performance.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/performance.adoc
@@ -160,7 +160,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/manual/plugins.adoc b/src/site/antora/modules/ROOT/pages/manual/plugins.adoc
index 9081deb991..1f18c5c23b 100644
--- a/src/site/antora/modules/ROOT/pages/manual/plugins.adoc
+++ b/src/site/antora/modules/ROOT/pages/manual/plugins.adoc
@@ -66,7 +66,7 @@ See {project-github-url}/log4j-core/src/main/java/org/apache/logging/log4j/core/
====
The `name` attribute of plugins of a certain `category` is recommended to be distinct and this matching is case-insensitive.
In case of a name collision, a warning will be emitted, and the plugin <<plugin-discovery,discovery order>> will determine the effective plugin.
-For example, to override the `File` plugin which is provided by the built-in xref:manual/appenders.adoc#FileAppender[File Appender], you would need to place your plugin in a JAR file in the classpath ahead of Log4j Core JAR.
+For example, to override the `File` plugin which is provided by the built-in xref:manual/appenders/file.adoc#FileAppender[File Appender], you would need to place your plugin in a JAR file in the classpath ahead of Log4j Core JAR.
In an OSGi environment, the order that bundles are scanned for plugins generally follows the same order that bundles were installed into the framework; see
https://docs.osgi.org/javadoc/r6/core/org/osgi/framework/BundleContext.html#getBundles()[`getBundles()`]
and
diff --git a/src/site/antora/modules/ROOT/pages/migrate-from-log4j1.adoc b/src/site/antora/modules/ROOT/pages/migrate-from-log4j1.adoc
index 9a5ab3178b..e47420b9ee 100644
--- a/src/site/antora/modules/ROOT/pages/migrate-from-log4j1.adoc
+++ b/src/site/antora/modules/ROOT/pages/migrate-from-log4j1.adoc
@@ -19,10 +19,7 @@ Licensed to the Apache Software Foundation (ASF) under one or more
:log4j1-url: https://logging.apache.org/log4j/1.x
:sonatype-url: https://central.sonatype.com/artifact
-{log4j1-url}/index.html[Log4j 1]
-has reached **End of Life** in 2015 (see
-https://news.apache.org/foundation/entry/apache_logging_services_project_announces[announcement])
-and is no longer supported.
+include::partial$log4j1-eol.adoc[]
Since Log4j 2 has been rewritten from scratch, it introduces many breaking changes to its predecessor.
Most notably:
@@ -351,7 +348,7 @@ Log4j 2 contains an equivalent for most Log4j 1 appenders:
| Log4j 1 appender | Log4j 2 equivalent | Notes
| {log4j1-url}/apidocs/org/apache/log4j/AsyncAppender.html[org.apache.log4j.AsyncAppender]
-| xref:manual/appenders.adoc#AsyncAppender[Async]
+| xref:manual/appenders/delegating.adoc#AsyncAppender[Async]
|
| {log4j1-url}/apidocs/org/apache/log4j/ConsoleAppender.html[org.apache.log4j.ConsoleAppender]
@@ -359,39 +356,39 @@ Log4j 2 contains an equivalent for most Log4j 1 appenders:
|
| {log4j1-url}/apidocs/org/apache/log4j/DailyRollingFileAppender.html[org.apache.log4j.DailyRollingFileAppender]
-| xref:manual/appenders.adoc#RollingFileAppender[RollingFile]
+| xref:manual/appenders/rolling-file.adoc#RollingFileAppender[RollingFile]
| See <<rolling-file-conversion,additional steps below>>.
| {log4j1-url}/apidocs/org/apache/log4j/FileAppender.html[org.apache.log4j.FileAppender]
-| xref:manual/appenders.adoc#FileAppender[File]
+| xref:manual/appenders/file.adoc#FileAppender[File]
|
| {log4j1-url}/apidocs/org/apache/log4j/RollingFileAppender.html[org.apache.log4j.RollingFileAppender]
-| xref:manual/appenders.adoc#RollingFileAppender[RollingFile]
+| xref:manual/appenders/rolling-file.adoc#RollingFileAppender[RollingFile]
| See <<rolling-file-conversion,additional steps below>>.
| {log4j1-url}/apidocs/org/apache/log4j/jdbc/JDBCAppender.html[org.apache.log4j.jdbc.JDBCAppender]
-| xref:manual/appenders.adoc#JDBCAppender[JDBC]
+| xref:manual/appenders/database.adoc#JdbcAppender[JDBC]
|
| {log4j1-url}/apidocs/org/apache/log4j/net/JMSAppender.html[org.apache.log4j.net.JMSAppender]
-| xref:manual/appenders.adoc#jms-appender[JMS]
+| xref:manual/appenders/message-queue.adoc#JmsAppender[JMS]
|
| {log4j1-url}/apidocs/org/apache/log4j/net/SocketAppender.html[org.apache.log4j.net.SocketAppender]
-| xref:manual/appenders.adoc#SocketAppender[Socket]
+| xref:manual/appenders/network.adoc#SocketAppender[Socket]
|
| {log4j1-url}/apidocs/org/apache/log4j/net/SMTPAppender.html[org.apache.log4j.net.SMTPAppender]
-| xref:manual/appenders.adoc#SMTPAppender[SMTP]
+| xref:manual/appenders/network.adoc#SmtpAppender[SMTP]
|
| {log4j1-url}/apidocs/org/apache/log4j/net/SyslogAppender.html[org.apache.log4j.net.SyslogAppender]
-| xref:manual/appenders.adoc#SyslogAppender[Syslog]
+| xref:manual/appenders/network.adoc#SyslogAppender[Syslog]
| Does not support custom layouts.
| {log4j1-url}/apidocs/org/apache/log4j/rewrite/RewriteAppender.html[org.apache.log4j.rewrite.RewriteAppender]
-| xref:manual/appenders.adoc#RewriteAppender[Rewrite]
+| xref:manual/appenders/delegating.adoc#RewriteAppender[Rewrite]
|
|===
@@ -408,7 +405,7 @@ Log4j 1 always rolls the current log file (e.g. `app.log`) to a log file with in
Log4j 2 on the other hand uses the first available index (e.g. `app.log.42` if files `app.log.1` thru `app.log.41` already exist).
+
To use the same algorithm to determine the index of the logged file in Log4j 1 and Log4j 2, you need to configure the `fileIndex` attribute of the
-xref:manual/appenders.adoc#DefaultRolloverStrategy[default rollover strategy] to `min`.
+xref:manual/appenders/rolling-file.adoc#DefaultRolloverStrategy[default rollover strategy] to `min`.
+
[source,xml]
----
@@ -541,7 +538,7 @@ See
xref:plugin-reference.adoc#org-apache-logging-log4j_log4j-1-2-api_org-apache-log4j-builders-Builder[the plugin reference] for a complete list.
[#option-1-use-the-log4j-1-x-bridge-log4j-1-2-api]
-== [[Log4j1.2Bridge]]Log4j 1 to Log4j 2 bridge
+== [[Log4j12Bridge]]Log4j 1 to Log4j 2 bridge
In order to help users with the migration process, a Log4j 1 to Log4j 2 bridge is available.
The bridge can fulfill three separate functions:
diff --git a/src/site/antora/modules/ROOT/pages/soa.adoc b/src/site/antora/modules/ROOT/pages/soa.adoc
index 75f6147da2..1925b410dc 100644
--- a/src/site/antora/modules/ROOT/pages/soa.adoc
+++ b/src/site/antora/modules/ROOT/pages/soa.adoc
@@ -99,7 +99,7 @@ Nevertheless, there are some tips we recommend you to practice:
* *For writing to console*, use a xref:manual/appenders.adoc#ConsoleAppender[Console Appender] and make sure to configure its `direct` attribute to `true` for the maximum efficiency.
-* *For writing to an external service*, use a xref:manual/appenders.adoc#SocketAppender[Socket Appender] and make sure to set the protocol to TCP and configure the null delimiter of the associated layout.
+* *For writing to an external service*, use a xref:manual/appenders/network.adoc#SocketAppender[Socket Appender] and make sure to set the protocol to TCP and configure the null delimiter of the associated layout.
For instance, see xref:manual/json-template-layout.adoc#plugin-attr-nullEventDelimiterEnabled[the `nullEventDelimiterEnabled` configuration attribute of JSON Template Layout].
[#file]
@@ -167,7 +167,7 @@ In this section, we will share guides on some popular integration scenarios.
[#docker]
=== Docker
-See xref:log4j-docker.adoc[Log4j Docker] for Docker-specific Log4j features, e.g., xref:manual/lookups.adoc#DockerLookup[Docker Lookup].
+See xref:manual/lookups.adoc#DockerLookup[Docker Lookup].
We also strongly advise you to check https://docs.docker.com/config/containers/logging/[the extensive logging integration] offered by Docker containers.
=== Kubernetes
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
diff --git a/src/site/resources/.htaccess b/src/site/resources/.htaccess
index aaf7891662..e181ccd394 100644
--- a/src/site/resources/.htaccess
+++ b/src/site/resources/.htaccess
@@ -36,16 +36,21 @@ RewriteRule "^articles\.html$" "manual/index.html" [R=permanent]
RewriteRule "^log4j-1\.2-api(/index)?\.html$" "manual/migration.html" [R=permanent]
RewriteRule "^log4j-api/apidocs(.*)$" "javadoc/log4j-api$1" [R=permanent]
RewriteRule "^log4j-api(/index)?\.html$" "manual/api.html" [R=permanent]
-RewriteRule "^log4j-appserver(/index)\.html$" "manual/webapp.html#replace" [R=permanent,NE]
+RewriteRule "^log4j-appserver(/index)?\.html$" "manual/webapp.html#replace" [R=permanent,NE]
+RewriteRule "^log4j-cassandra(/index)?\.html$" "manual/appenders/database.html#CassandraAppender" [R=permanent,NE]
RewriteRule "^log4j-core/apidocs(.*)$" "javadoc/log4j-core$1" [R=permanent]
+RewriteRule "^log4j-couchdb(/index)?\.html$" "manual/appenders/database.html#CouchDbProvider" [R=permanent,NE]
+RewriteRule "^log4j-docker(/index)?\.html$" "manual/lookups.html#DockerLookup" [R=permanent,NE]
+RewriteRule "^log4j-flume-ng(/index)?\.html$" "manual/appenders/message-queue.html#FlumeAppender" [R=permanent,NE]
RewriteRule "^log4j(-jakarta)?-web(/index)?\.html$" "manual/webapp.html" [R=permanent]
RewriteRule "^log4j-jcl(/index)?\.html$" "manual/installation.html#impl-core-bridge-jcl" [R=permanent,NE]
RewriteRule "^log4j-jmx-gui(/index)?\.html$" "/log4j/jmx-gui/latest/index.html" [R=permanent]
RewriteRule "^log4j-jpl(/index)?\.html$" "manual/installation.html#impl-core-bridge-jpl" [R=permanent,NE]
RewriteRule "^log4j-kubernetes(/index)?\.html$" "https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md" [R=permanent]
-RewriteRule "^log4j-mongodb3(/index)?\.html$" "manual/appenders.html#NoSQLAppenderMongoDB" [R=permanent,NE]
-RewriteRule "^log4j-mongodb4(/index)?\.html$" "manual/appenders.html#log4j-mongodb4" [R=permanent,NE]
+RewriteRule "^log4j-mongodb3(/index)?\.html$" "manual/appenders.html#NoSQLProvider-MongoDB" [R=permanent,NE]
+RewriteRule "^log4j-mongodb4(/index)?\.html$" "manual/appenders.html#MongoDb4Provider" [R=permanent,NE]
RewriteRule "^log4j-slf4j2?-impl(/index)?\.html$" "manual/installation.html#impl-core-bridge-slf4j" [R=permanent,NE]
+RewriteRule "^log4j-spring-cloud-config(/index)?\.html$" "log4j-spring-cloud-config-client.html" [R=permanent]
RewriteRule "^log4j-taglib(/index)?\.html$" "manual/webapp.html#log4j-taglib" [R=permanent,NE]
RewriteRule "^manual/api-separation\.html$" "manual/api.html" [R=permanent]
RewriteRule "^manual/cloud\.html$" "soa.html" [R=permanent]
@@ -63,14 +68,9 @@ RewriteRule "^thanks\.html$" "/support.html#sponsors" [R=permanent,NE]
# 2. we replaced a directory like `log4j-api/` with a file that has the same prefix like `log4j-api.html`,
#
# if the URI path is `/log4j/2.x/log4j-api/foo` we must match `log4j-api.html/foo`.
-RewriteRule "^log4j-cassandra\.html/index\.html$" "log4j-cassandra.html" [R=permanent]
-RewriteRule "^log4j-couchdb\.html/index\.html$" "log4j-couchdb.html" [R=permanent]
-RewriteRule "^log4j-docker\.html/index\.html$" "log4j-docker.html" [R=permanent]
-RewriteRule "^log4j-flume-ng\.html/index\.html$" "log4j-flume-ng.html" [R=permanent]
RewriteRule "^log4j-iostreams\.html/index\.html$" "log4j-iostreams.html" [R=permanent]
RewriteRule "^log4j-jul\.html/index\.html$" "log4j-jul.html" [R=permanent,NE]
RewriteRule "^log4j-spring-boot\.html/index\.html$" "log4j-spring-boot.html" [R=permanent]
-RewriteRule "^log4j-spring-cloud-config\.html/index\.html$" "log4j-spring-cloud-config.html" [R=permanent]
RewriteRule "^log4j-spring-cloud-config-client\.html/index\.html$" "log4j-spring-cloud-config-client.html" [R=permanent]
RewriteRule "^log4j-to-jul\.html/index\.html$" "log4j-to-jul.html" [R=permanent]
RewriteRule "^release-notes\.html/index\.html$" "release-notes.html" [R=permanent]