You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2024/01/29 19:32:45 UTC
(logging-log4j2) branch main-remove-jcl-and-appserver created (now 8b519093a1)
This is an automated email from the ASF dual-hosted git repository.
vy pushed a change to branch main-remove-jcl-and-appserver
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
at 8b519093a1 Remove `log4j-jcl` and `log4j-appserver` modules
This branch includes the following new commits:
new 8b519093a1 Remove `log4j-jcl` and `log4j-appserver` modules
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(logging-log4j2) 01/01: Remove `log4j-jcl` and `log4j-appserver` modules
Posted by vy...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch main-remove-jcl-and-appserver
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 8b519093a17d45baf4b67e2a80629750c27e335a
Author: Volkan Yazıcı <vo...@yazi.ci>
AuthorDate: Mon Jan 29 20:31:35 2024 +0100
Remove `log4j-jcl` and `log4j-appserver` modules
---
log4j-appserver/pom.xml | 73 -------
.../log4j/appserver/jetty/Log4j2Logger.java | 217 ---------------------
.../log4j/appserver/jetty/package-info.java | 27 ---
.../log4j/appserver/tomcat/TomcatLogger.java | 190 ------------------
.../log4j/appserver/tomcat/package-info.java | 25 ---
log4j-jcl/pom.xml | 71 -------
.../org/apache/logging/log4j/jcl/Log4jLog.java | 125 ------------
.../org/apache/logging/log4j/jcl/LogAdapter.java | 45 -----
.../apache/logging/log4j/jcl/LogFactoryImpl.java | 86 --------
.../org/apache/logging/log4j/jcl/package-info.java | 25 ---
.../services/org.apache.commons.logging.LogFactory | 1 -
.../logging/log4j/jcl/CallerInformationTest.java | 58 ------
.../org/apache/logging/log4j/jcl/LoggerTest.java | 58 ------
.../src/test/resources/CallerInformationTest.xml | 42 ----
log4j-jcl/src/test/resources/LoggerTest.xml | 55 ------
pom.xml | 2 -
src/changelog/.3.x.x/remove_appserver.xml | 7 +
src/changelog/.3.x.x/remove_jcl.xml | 7 +
src/site/_release-notes/_3.x.x.adoc | 1 +
src/site/asciidoc/faq.adoc | 3 -
src/site/asciidoc/runtime-dependencies.adoc | 14 --
src/site/markdown/log4j-appserver.md.vm | 59 ------
src/site/markdown/log4j-flume-ng.md.vm | 10 -
src/site/markdown/log4j-jcl.md | 33 ----
src/site/markdown/maven-artifacts.md.vm | 7 -
src/site/site.xml | 2 -
26 files changed, 15 insertions(+), 1228 deletions(-)
diff --git a/log4j-appserver/pom.xml b/log4j-appserver/pom.xml
deleted file mode 100644
index df0ce0067d..0000000000
--- a/log4j-appserver/pom.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-<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>
-
- <parent>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${revision}</version>
- <relativePath>../log4j-parent</relativePath>
- </parent>
-
- <artifactId>log4j-appserver</artifactId>
- <packaging>jar</packaging>
- <name>Apache Log4j App Server Support</name>
- <description>Provide Log4j as the logging implementation for application servers</description>
-
- <properties>
-
- <!--
- ~ OSGi and JPMS options
- -->
- <bnd-extra-package-options>
- <!--
- ~ The Tomcat Log interface hasn't changed in a long time. Since 8.x ServiceLoader is used.
- -->
- org.apache.juli.logging;version="[8.0,12)";resolution:=optional,
- <!--
- ~ Jetty's AbstractLogger is available since version 7.6.
- ~ Jetty 10.x uses SLF4J.
- -->
- org.eclipse.jetty.util.log;version="[7.6,10)";resolution:=optional
- </bnd-extra-package-options>
- <bnd-extra-module-options>
- <!-- Non-transitive -->
- org.apache.tomcat.juli;transitive=false,
- org.eclipse.jetty.util;transitive=false
- </bnd-extra-module-options>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>jetty-util</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.tomcat</groupId>
- <artifactId>tomcat-juli</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java
deleted file mode 100644
index 953b11f023..0000000000
--- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java
+++ /dev/null
@@ -1,217 +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.
- */
-package org.apache.logging.log4j.appserver.jetty;
-
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.spi.ExtendedLogger;
-import org.apache.logging.log4j.spi.LoggerContext;
-import org.eclipse.jetty.util.log.AbstractLogger;
-import org.eclipse.jetty.util.log.Logger;
-
-/**
- * Provides a native Apache Log4j 2 logger for Eclipse Jetty logging.
- *
- * <p>
- * To direct Jetty to use this class, set the system property {{org.eclipse.jetty.util.log.class}} to this class name.
- * </p>
- *
- * <p>
- * From the command line with:
- * </p>
- * <pre>-Dorg.eclipse.jetty.util.log.class = org.apache.logging.log4j.appserver.jetty.Log4j2Logger</pre>
- *
- * <p>
- * Programmatically with:
- * </p>
- * <pre>System.setProperty("org.eclipse.jetty.util.log.class", "org.apache.logging.log4j.appserver.jetty.Log4j2Logger");</pre>
- *
- * @since Apache Log4j 2.10.0
- */
-public class Log4j2Logger extends AbstractLogger {
-
- private static final String PARENT_FQCN = AbstractLogger.class.getName();
- /**
- * Internal LogManager. Applications call AbstractLogger's getLogger() method so that class must be used
- * as the parent to locate the caller's ClassLoader.
- */
- private static class PrivateManager extends LogManager {
-
- public static LoggerContext getContext() {
- final ClassLoader cl = AbstractLogger.class.getClassLoader();
- return getContext(PARENT_FQCN, cl, false);
- }
-
- public static ExtendedLogger getLogger(final String name) {
- return getContext().getLogger(name);
- }
- }
-
- static final String FQCN = Log4j2Logger.class.getName();
- private final ExtendedLogger logger;
-
- private final String name;
-
- public Log4j2Logger() {
- this("");
- }
-
- public Log4j2Logger(final String name) {
- this.name = name;
- this.logger = PrivateManager.getLogger(name);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#debug(java.lang.String, java.lang.Object[])
- */
- @Override
- public void debug(final String msg, final Object... args) {
- logger.logIfEnabled(FQCN, Level.DEBUG, null, msg, args);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#debug(java.lang.String, java.lang.Throwable)
- */
- @Override
- public void debug(final String msg, final Throwable thrown) {
- logger.logIfEnabled(FQCN, Level.DEBUG, null, msg, thrown);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#debug(java.lang.Throwable)
- */
- @Override
- public void debug(final Throwable thrown) {
- logger.logIfEnabled(FQCN, Level.DEBUG, null, (Object) null, thrown);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#getName()
- */
- @Override
- public String getName() {
- return name;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#ignore(java.lang.Throwable)
- */
- @Override
- public void ignore(final Throwable ignored) {
- // Really do nothing
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#info(java.lang.String, java.lang.Object[])
- */
- @Override
- public void info(final String msg, final Object... args) {
- logger.logIfEnabled(FQCN, Level.INFO, null, msg, args);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#info(java.lang.String, java.lang.Throwable)
- */
- @Override
- public void info(final String msg, final Throwable thrown) {
- logger.logIfEnabled(FQCN, Level.INFO, null, msg, thrown);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#info(java.lang.Throwable)
- */
- @Override
- public void info(final Throwable thrown) {
- logger.logIfEnabled(FQCN, Level.INFO, null, (Object) null, thrown);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#isDebugEnabled()
- */
- @Override
- public boolean isDebugEnabled() {
- return logger.isDebugEnabled();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.AbstractLogger#newLogger(java.lang.String)
- */
- @Override
- protected Logger newLogger(final String fullname) {
- return new Log4j2Logger(fullname);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#setDebugEnabled(boolean)
- */
- @Override
- public void setDebugEnabled(final boolean enabled) {
- warn("setDebugEnabled not implemented");
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#warn(java.lang.String, java.lang.Object[])
- */
- @Override
- public void warn(final String msg, final Object... args) {
- logger.logIfEnabled(FQCN, Level.WARN, null, msg, args);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#warn(java.lang.String, java.lang.Throwable)
- */
- @Override
- public void warn(final String msg, final Throwable thrown) {
- logger.logIfEnabled(FQCN, Level.WARN, null, msg, thrown);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jetty.util.log.Logger#warn(java.lang.Throwable)
- */
- @Override
- public void warn(final Throwable thrown) {
- logger.logIfEnabled(FQCN, Level.WARN, null, (Object) null, thrown);
- }
-}
diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/package-info.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/package-info.java
deleted file mode 100644
index 41b7bce811..0000000000
--- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/package-info.java
+++ /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 integration with Eclipse Jetty.
- */
-@Open
-@Export
-@Version("2.20.1")
-package org.apache.logging.log4j.appserver.jetty;
-
-import aQute.bnd.annotation.jpms.Open;
-import org.osgi.annotation.bundle.Export;
-import org.osgi.annotation.versioning.Version;
diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java
deleted file mode 100644
index 2c546a22c4..0000000000
--- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java
+++ /dev/null
@@ -1,190 +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.
- */
-package org.apache.logging.log4j.appserver.tomcat;
-
-import aQute.bnd.annotation.Resolution;
-import aQute.bnd.annotation.spi.ServiceProvider;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import org.apache.juli.logging.Log;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.spi.ExtendedLogger;
-import org.apache.logging.log4j.spi.LoggerContext;
-
-/**
- * Implements the Log interface from Tomcat 8.5 and greater.
- *
- * In order to use this class to cause Tomcat to use Log4j for logging, the jar containing this class as well as the
- * log4j-api and log4j-core jars must be added to Tomcat's boot classpath. This is most easily accomplished by
- * placing these jars in a directory and then adding the contents of that directory to the CLASSPATH
- * environment variable in setenv.sh in Tomcat's bin directory.
- *
- * The Log4j configuration file must also be present on the classpath. This implementation will use the
- * first file it finds with one of the following file names: log4j2-tomcat.xml, log4j2-tomcat.json,
- * log4j2-tomcat.yaml, log4j2-tomcat.yml, log4j2-tomcat.properties. Again, this can be accomplished by adding
- * this file to a directory and then adding that directory to the CLASSPATH environment variable in setenv.sh.
- *
- * @since 2.10.0
- */
-@ServiceProvider(value = Log.class, resolution = Resolution.OPTIONAL)
-public class TomcatLogger implements Log {
-
- private static final long serialVersionUID = 1L;
- private static final String FQCN = TomcatLogger.class.getName();
- private static final String[] FILE_NAMES = {
- "log4j2-tomcat.xml", "log4j2-tomcat.json", "log4j2-tomcat.yaml", "log4j2-tomcat.yml", "log4j2-tomcat.properties"
- };
-
- private final ExtendedLogger logger;
-
- /**
- * This constructor is used by ServiceLoader to load an instance of the class.
- */
- public TomcatLogger() {
- logger = null;
- }
-
- /**
- * This constructor is used by LogFactory to create a new Logger.
- * @param name The name of the Logger.
- */
- public TomcatLogger(final String name) {
- this.logger = PrivateManager.getLogger(name);
- }
-
- @Override
- public boolean isDebugEnabled() {
- return logger.isDebugEnabled();
- }
-
- @Override
- public boolean isErrorEnabled() {
- return logger.isErrorEnabled();
- }
-
- @Override
- public boolean isFatalEnabled() {
- return logger.isFatalEnabled();
- }
-
- @Override
- public boolean isInfoEnabled() {
- return logger.isInfoEnabled();
- }
-
- @Override
- public boolean isTraceEnabled() {
- return logger.isTraceEnabled();
- }
-
- @Override
- public boolean isWarnEnabled() {
- return logger.isWarnEnabled();
- }
-
- @Override
- public void trace(final Object o) {
- logger.logIfEnabled(FQCN, Level.TRACE, null, o, null);
- }
-
- @Override
- public void trace(final Object o, final Throwable throwable) {
- logger.logIfEnabled(FQCN, Level.TRACE, null, o, throwable);
- }
-
- @Override
- public void debug(final Object o) {
- logger.logIfEnabled(FQCN, Level.DEBUG, null, o, null);
- }
-
- @Override
- public void debug(final Object o, final Throwable throwable) {
- logger.logIfEnabled(FQCN, Level.DEBUG, null, o, throwable);
- }
-
- @Override
- public void info(final Object o) {
- logger.logIfEnabled(FQCN, Level.INFO, null, o, null);
- }
-
- @Override
- public void info(final Object o, final Throwable throwable) {
- logger.logIfEnabled(FQCN, Level.INFO, null, o, throwable);
- }
-
- @Override
- public void warn(final Object o) {
- logger.logIfEnabled(FQCN, Level.WARN, null, o, null);
- }
-
- @Override
- public void warn(final Object o, final Throwable throwable) {
- logger.logIfEnabled(FQCN, Level.WARN, null, o, throwable);
- }
-
- @Override
- public void error(final Object o) {
- logger.logIfEnabled(FQCN, Level.ERROR, null, o, null);
- }
-
- @Override
- public void error(final Object o, final Throwable throwable) {
- logger.logIfEnabled(FQCN, Level.ERROR, null, o, throwable);
- }
-
- @Override
- public void fatal(final Object o) {
- logger.logIfEnabled(FQCN, Level.FATAL, null, o, null);
- }
-
- @Override
- public void fatal(final Object o, final Throwable throwable) {
- logger.logIfEnabled(FQCN, Level.FATAL, null, o, throwable);
- }
-
- /**
- * Internal LogManager.
- */
- private static class PrivateManager extends LogManager {
-
- public static LoggerContext getContext() {
- final ClassLoader cl = TomcatLogger.class.getClassLoader();
- URI uri = null;
- for (final String fileName : FILE_NAMES) {
- try {
- final URL url = cl.getResource(fileName);
- if (url != null) {
- uri = url.toURI();
- break;
- }
- } catch (final URISyntaxException ex) {
- // Ignore the exception.
- }
- }
- if (uri == null) {
- return getContext(FQCN, cl, false);
- }
- return getContext(FQCN, cl, false, uri, "Tomcat");
- }
-
- public static ExtendedLogger getLogger(final String name) {
- return getContext().getLogger(name);
- }
- }
-}
diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java
deleted file mode 100644
index d8d724f4eb..0000000000
--- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java
+++ /dev/null
@@ -1,25 +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 integration with Apache Tomcat 8.5 or greater.
- */
-@Export
-@Version("2.20.1")
-package org.apache.logging.log4j.appserver.tomcat;
-
-import org.osgi.annotation.bundle.Export;
-import org.osgi.annotation.versioning.Version;
diff --git a/log4j-jcl/pom.xml b/log4j-jcl/pom.xml
deleted file mode 100644
index acc7c8d8a3..0000000000
--- a/log4j-jcl/pom.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-<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>
- <parent>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${revision}</version>
- <relativePath>../log4j-parent</relativePath>
- </parent>
- <artifactId>log4j-jcl</artifactId>
- <packaging>jar</packaging>
- <name>Apache Log4j Commons Logging Bridge</name>
- <description>The Apache Log4j Commons Logging Adapter</description>
- <properties>
- <bnd-extra-module-options>
- <!-- Filebase module names: MUST be static -->
- commons.logging;substitute="commons-logging";transitive=false;static=true
- </bnd-extra-module-options>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-core-test</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.assertj</groupId>
- <artifactId>assertj-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.junit.jupiter</groupId>
- <artifactId>junit-jupiter-api</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
diff --git a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/Log4jLog.java b/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/Log4jLog.java
deleted file mode 100644
index 2f235ac8e0..0000000000
--- a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/Log4jLog.java
+++ /dev/null
@@ -1,125 +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.
- */
-package org.apache.logging.log4j.jcl;
-
-import org.apache.commons.logging.Log;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.spi.ExtendedLogger;
-
-/**
- *
- */
-public class Log4jLog implements Log {
-
- private static final String FQCN = Log4jLog.class.getName();
-
- private final ExtendedLogger logger;
-
- public Log4jLog(final ExtendedLogger logger) {
- this.logger = logger;
- }
-
- @Override
- public boolean isDebugEnabled() {
- return logger.isEnabled(Level.DEBUG, null, null);
- }
-
- @Override
- public boolean isErrorEnabled() {
- return logger.isEnabled(Level.ERROR, null, null);
- }
-
- @Override
- public boolean isFatalEnabled() {
- return logger.isEnabled(Level.FATAL, null, null);
- }
-
- @Override
- public boolean isInfoEnabled() {
- return logger.isEnabled(Level.INFO, null, null);
- }
-
- @Override
- public boolean isTraceEnabled() {
- return logger.isEnabled(Level.TRACE, null, null);
- }
-
- @Override
- public boolean isWarnEnabled() {
- return logger.isEnabled(Level.WARN, null, null);
- }
-
- @Override
- public void trace(final Object message) {
- logger.logIfEnabled(FQCN, Level.TRACE, null, message, null);
- }
-
- @Override
- public void trace(final Object message, final Throwable t) {
- logger.logIfEnabled(FQCN, Level.TRACE, null, message, t);
- }
-
- @Override
- public void debug(final Object message) {
- logger.logIfEnabled(FQCN, Level.DEBUG, null, message, null);
- }
-
- @Override
- public void debug(final Object message, final Throwable t) {
- logger.logIfEnabled(FQCN, Level.DEBUG, null, message, t);
- }
-
- @Override
- public void info(final Object message) {
- logger.logIfEnabled(FQCN, Level.INFO, null, message, null);
- }
-
- @Override
- public void info(final Object message, final Throwable t) {
- logger.logIfEnabled(FQCN, Level.INFO, null, message, t);
- }
-
- @Override
- public void warn(final Object message) {
- logger.logIfEnabled(FQCN, Level.WARN, null, message, null);
- }
-
- @Override
- public void warn(final Object message, final Throwable t) {
- logger.logIfEnabled(FQCN, Level.WARN, null, message, t);
- }
-
- @Override
- public void error(final Object message) {
- logger.logIfEnabled(FQCN, Level.ERROR, null, message, null);
- }
-
- @Override
- public void error(final Object message, final Throwable t) {
- logger.logIfEnabled(FQCN, Level.ERROR, null, message, t);
- }
-
- @Override
- public void fatal(final Object message) {
- logger.logIfEnabled(FQCN, Level.FATAL, null, message, null);
- }
-
- @Override
- public void fatal(final Object message, final Throwable t) {
- logger.logIfEnabled(FQCN, Level.FATAL, null, message, t);
- }
-}
diff --git a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogAdapter.java b/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogAdapter.java
deleted file mode 100644
index 108c4d070b..0000000000
--- a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogAdapter.java
+++ /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.
- */
-package org.apache.logging.log4j.jcl;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.spi.AbstractLoggerAdapter;
-import org.apache.logging.log4j.spi.LoggerContext;
-import org.apache.logging.log4j.util.StackLocatorUtil;
-
-/**
- * Commons Logging adapter registry.
- *
- * @since 2.1
- */
-public class LogAdapter extends AbstractLoggerAdapter<Log> {
-
- @Override
- protected Log newLogger(final String name, final LoggerContext context) {
- return new Log4jLog(context.getLogger(name));
- }
-
- @Override
- protected LoggerContext getContext() {
- return getContext(
- LogManager.getFactory().isClassLoaderDependent()
- ? StackLocatorUtil.getCallerClass(LogFactory.class)
- : null);
- }
-}
diff --git a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java b/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java
deleted file mode 100644
index 8d73091ba4..0000000000
--- a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/LogFactoryImpl.java
+++ /dev/null
@@ -1,86 +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.
- */
-package org.apache.logging.log4j.jcl;
-
-import aQute.bnd.annotation.Resolution;
-import aQute.bnd.annotation.spi.ServiceProvider;
-import java.io.IOException;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogConfigurationException;
-import org.apache.commons.logging.LogFactory;
-import org.apache.logging.log4j.spi.LoggerAdapter;
-import org.apache.logging.log4j.util.Strings;
-
-/**
- * Log4j binding for Commons Logging.
- * {@inheritDoc}
- */
-@ServiceProvider(value = LogFactory.class, resolution = Resolution.OPTIONAL)
-public class LogFactoryImpl extends LogFactory {
-
- private final LoggerAdapter<Log> adapter = new LogAdapter();
-
- private final ConcurrentMap<String, Object> attributes = new ConcurrentHashMap<>();
-
- @Override
- public Log getInstance(final String name) throws LogConfigurationException {
- return adapter.getLogger(name);
- }
-
- @Override
- public Object getAttribute(final String name) {
- return attributes.get(name);
- }
-
- @Override
- public String[] getAttributeNames() {
- return attributes.keySet().toArray(Strings.EMPTY_ARRAY);
- }
-
- @Override
- public Log getInstance(@SuppressWarnings("rawtypes") final Class clazz) throws LogConfigurationException {
- return getInstance(clazz.getName());
- }
-
- /**
- * This method is supposed to clear all loggers. In this implementation it will clear all the logger
- * wrappers but the loggers managed by the underlying logger context will not be.
- */
- @Override
- public void release() {
- try {
- adapter.close();
- } catch (final IOException ignored) {
- }
- }
-
- @Override
- public void removeAttribute(final String name) {
- attributes.remove(name);
- }
-
- @Override
- public void setAttribute(final String name, final Object value) {
- if (value != null) {
- attributes.put(name, value);
- } else {
- removeAttribute(name);
- }
- }
-}
diff --git a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/package-info.java b/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/package-info.java
deleted file mode 100644
index 3f8f8ea632..0000000000
--- a/log4j-jcl/src/main/java/org/apache/logging/log4j/jcl/package-info.java
+++ /dev/null
@@ -1,25 +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 2 adapter for Commons Logging.
- */
-@Export
-@Version("2.20.1")
-package org.apache.logging.log4j.jcl;
-
-import org.osgi.annotation.bundle.Export;
-import org.osgi.annotation.versioning.Version;
diff --git a/log4j-jcl/src/main/resources/META-INF/services/org.apache.commons.logging.LogFactory b/log4j-jcl/src/main/resources/META-INF/services/org.apache.commons.logging.LogFactory
deleted file mode 100644
index 7e9c8a6659..0000000000
--- a/log4j-jcl/src/main/resources/META-INF/services/org.apache.commons.logging.LogFactory
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.logging.log4j.jcl.LogFactoryImpl
diff --git a/log4j-jcl/src/test/java/org/apache/logging/log4j/jcl/CallerInformationTest.java b/log4j-jcl/src/test/java/org/apache/logging/log4j/jcl/CallerInformationTest.java
deleted file mode 100644
index ba6987b137..0000000000
--- a/log4j-jcl/src/test/java/org/apache/logging/log4j/jcl/CallerInformationTest.java
+++ /dev/null
@@ -1,58 +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.
- */
-package org.apache.logging.log4j.jcl;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.test.appender.ListAppender;
-import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
-import org.junit.jupiter.api.Test;
-
-public class CallerInformationTest {
-
- @Test
- @LoggerContextSource("CallerInformationTest.xml")
- public void testClassLogger(final LoggerContext ctx) {
- final ListAppender app = ctx.getConfiguration().getAppender("Class");
- app.clear();
- final Log logger = LogFactory.getLog("ClassLogger");
- logger.info("Ignored message contents.");
- logger.warn("Verifying the caller class is still correct.");
- logger.error("Hopefully nobody breaks me!");
- final List<String> messages = app.getMessages();
- assertThat(messages).hasSize(3).allMatch(c -> getClass().getName().equals(c));
- }
-
- @Test
- @LoggerContextSource("CallerInformationTest.xml")
- public void testMethodLogger(final LoggerContext ctx) {
- final ListAppender app = ctx.getConfiguration().getAppender("Method");
- app.clear();
- final Log logger = LogFactory.getLog("MethodLogger");
- logger.info("More messages.");
- logger.warn("CATASTROPHE INCOMING!");
- logger.error("ZOMBIES!!!");
- logger.warn("brains~~~");
- logger.info("Itchy. Tasty.");
- final List<String> messages = app.getMessages();
- assertThat(messages).hasSize(5).allMatch("testMethodLogger"::equals);
- }
-}
diff --git a/log4j-jcl/src/test/java/org/apache/logging/log4j/jcl/LoggerTest.java b/log4j-jcl/src/test/java/org/apache/logging/log4j/jcl/LoggerTest.java
deleted file mode 100644
index e9c405342a..0000000000
--- a/log4j-jcl/src/test/java/org/apache/logging/log4j/jcl/LoggerTest.java
+++ /dev/null
@@ -1,58 +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.
- */
-package org.apache.logging.log4j.jcl;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.util.List;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.test.appender.ListAppender;
-import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
-import org.apache.logging.log4j.util.Strings;
-import org.junit.jupiter.api.Test;
-
-class LoggerTest {
-
- @Test
- void testFactory() {
- final LogFactory factory = LogFactory.getFactory();
- assertThat(factory).isInstanceOf(LogFactoryImpl.class);
- }
-
- @Test
- @LoggerContextSource("LoggerTest.xml")
- void testLog(final LoggerContext context) {
- final Log logger = LogFactory.getLog("LoggerTest");
- logger.debug("Test message");
- verify(context, "o.a.l.l.j.LoggerTest Test message MDC{}" + Strings.LINE_SEPARATOR);
- logger.debug("Exception: ", new NullPointerException("Test"));
- verify(context, "o.a.l.l.j.LoggerTest Exception: MDC{}" + Strings.LINE_SEPARATOR);
- logger.info("Info Message");
- verify(context, "o.a.l.l.j.LoggerTest Info Message MDC{}" + Strings.LINE_SEPARATOR);
- logger.info("Info Message {}");
- verify(context, "o.a.l.l.j.LoggerTest Info Message {} MDC{}" + Strings.LINE_SEPARATOR);
- }
-
- private static void verify(final LoggerContext context, final String expected) {
- final ListAppender listApp = context.getConfiguration().getAppender("List");
- final List<String> events = listApp.getMessages();
- assertThat(events).hasSize(1).containsExactly(expected);
- listApp.clear();
- }
-}
diff --git a/log4j-jcl/src/test/resources/CallerInformationTest.xml b/log4j-jcl/src/test/resources/CallerInformationTest.xml
deleted file mode 100644
index 997aaa7049..0000000000
--- a/log4j-jcl/src/test/resources/CallerInformationTest.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-<Configuration name="CallerInformationTest" status="OFF">
- <Appenders>
- <List name="Class">
- <PatternLayout pattern="%class"/>
- </List>
- <List name="Method">
- <PatternLayout pattern="%method"/>
- </List>
- <List name="Fqcn">
- <PatternLayout pattern="%fqcn"/>
- </List>
- </Appenders>
- <Loggers>
- <Logger name="ClassLogger" level="info">
- <AppenderRef ref="Class"/>
- </Logger>
- <Logger name="MethodLogger" level="info">
- <AppenderRef ref="Method"/>
- </Logger>
- <Logger name="FqcnLogger" level="info">
- <AppenderRef ref="Fqcn"/>
- </Logger>
- <Root level="off"/>
- </Loggers>
-</Configuration>
diff --git a/log4j-jcl/src/test/resources/LoggerTest.xml b/log4j-jcl/src/test/resources/LoggerTest.xml
deleted file mode 100644
index d439c2e5ef..0000000000
--- a/log4j-jcl/src/test/resources/LoggerTest.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-<Configuration status="OFF" name="LoggerTest">
- <properties>
- <property name="filename">target/test.log</property>
- </properties>
- <ThresholdFilter level="trace"/>
-
- <Appenders>
- <List name="EventLogger">
- <PatternLayout pattern="%C{1.} %m%n"/>
- </List>
- <Console name="STDOUT">
- <PatternLayout pattern="%C{1.} %m MDC%X%n"/>
- </Console>
- <File name="File" fileName="${filename}">
- <PatternLayout>
- <pattern>%d %p %C{1.} [%t] %m%n</pattern>
- </PatternLayout>
- </File>
- <List name="List">
- <PatternLayout pattern="%C{1.} %m MDC%X%n%ex{0}"/>
- </List>
- </Appenders>
-
- <Loggers>
- <Logger name="EventLogger" level="info" additivity="false">
- <AppenderRef ref="EventLogger"/>
- </Logger>>
-
- <Logger name="org.apache.logging.log4j.test2" level="debug" additivity="false">
- <AppenderRef ref="File"/>
- </Logger>>
-
- <Root level="trace">
- <AppenderRef ref="List"/>
- </Root>
- </Loggers>
-
-</Configuration>
diff --git a/pom.xml b/pom.xml
index f4fd649db7..9a092e0125 100644
--- a/pom.xml
+++ b/pom.xml
@@ -235,7 +235,6 @@
<module>log4j-1.2-api</module>
<module>log4j-api</module>
<module>log4j-api-test</module>
- <module>log4j-appserver</module>
<module>log4j-async-logger</module>
<module>log4j-config-jackson</module>
<module>log4j-config-properties</module>
@@ -247,7 +246,6 @@
<module>log4j-flume-ng</module>
<module>log4j-gc-test</module>
<module>log4j-iostreams</module>
- <module>log4j-jcl</module>
<module>log4j-jctools</module>
<module>log4j-jdbc</module>
<module>log4j-jdbc-dbcp2</module>
diff --git a/src/changelog/.3.x.x/remove_appserver.xml b/src/changelog/.3.x.x/remove_appserver.xml
new file mode 100644
index 0000000000..974bba3d01
--- /dev/null
+++ b/src/changelog/.3.x.x/remove_appserver.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://logging.apache.org/log4j/changelog"
+ xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.3.xsd"
+ type="removed">
+ <description format="asciidoc">Remove `log4j-appserver` module</description>
+</entry>
diff --git a/src/changelog/.3.x.x/remove_jcl.xml b/src/changelog/.3.x.x/remove_jcl.xml
new file mode 100644
index 0000000000..b588b66a8f
--- /dev/null
+++ b/src/changelog/.3.x.x/remove_jcl.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="http://logging.apache.org/log4j/changelog"
+ xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.3.xsd"
+ type="removed">
+ <description format="asciidoc">Remove `log4j-jcl` module</description>
+</entry>
diff --git a/src/site/_release-notes/_3.x.x.adoc b/src/site/_release-notes/_3.x.x.adoc
index 7ff71077bd..55041d0ca5 100644
--- a/src/site/_release-notes/_3.x.x.adoc
+++ b/src/site/_release-notes/_3.x.x.adoc
@@ -31,6 +31,7 @@ This release contains...
=== Changed
* Change the order of evaluation of `FormattedMessage` formatters. Messages are evaluated using `java.util.Format` only if they don't comply to the `java.text.MessageFormat` or `ParameterizedMessage` format. (https://github.com/apache/logging-log4j2/issues/1223[1223])
+* Split off async logger support into a new `log4j-async-logger` module.
* Split off YAML configuration into a new `log4j-config-yaml` module.
* Update `com.google.code.java-allocation-instrumenter:java-allocation-instrumenter` to version `3.3.4` (https://github.com/apache/logging-log4j2/pull/2102[2102])
* Update `com.google.guava:guava` to version `33.0.0-jre` (https://github.com/apache/logging-log4j2/pull/2108[2108])
diff --git a/src/site/asciidoc/faq.adoc b/src/site/asciidoc/faq.adoc
index 37ea84cf75..b98a3b3718 100644
--- a/src/site/asciidoc/faq.adoc
+++ b/src/site/asciidoc/faq.adoc
@@ -78,9 +78,6 @@ be safely excluded (given in the format `groupId:artifactId`).
|ch.qos.logback:logback-core
|org.apache.logging.log4j:log4j-to-slf4j
-|log4j-jcl
-3+|org.slf4j:jcl-over-slf4j
-
|log4j-jul
3+|org.slf4j:jul-to-slf4j
diff --git a/src/site/asciidoc/runtime-dependencies.adoc b/src/site/asciidoc/runtime-dependencies.adoc
index 8ae1e384e0..48abf2c56f 100644
--- a/src/site/asciidoc/runtime-dependencies.adoc
+++ b/src/site/asciidoc/runtime-dependencies.adoc
@@ -224,10 +224,6 @@ The module info definition may be modified in the future to export these only to
|org.apache.log4j
|Automatic Module - It is unlikely any application using JPMS would use Log4j 1.x.
-|log4j-appserver
-|org.apache.logging.log4j.appserver
-|Automatic Module
-
|log4j-docker
|org.apache.logging.log4j.docker
|Automatic Module
@@ -240,10 +236,6 @@ The module info definition may be modified in the future to export these only to
|org.apache.logging.log4j.iostreams
|Automatic Module
-|log4j-jcl
-|org.apache.logging.log4j.jcl
-|Automatic Module
-
|log4j-jpl
|org.apache.logging.log4j.jpl
|
@@ -520,12 +512,6 @@ for the exact list of JAR files needed.
|The Log4j link:log4j-iostreams/index.html[IO Streams] module has no
external dependencies. This only requires the Log4j API.
-|log4j-jcl[[log4j-jcl]]
-|The link:log4j-jcl/index.html[Commons Logging Bridge] requires
-http://commons.apache.org/proper/commons-logging/[Commons Logging]. See
-the link:log4j-jcl/dependencies.html#Dependency_Tree[Dependency Tree]
-for the exact list of JAR files needed.
-
|log4j-jmx-gui[[log4j-jmx-gui]]
|The Log4j link:log4j-jmx-gui/index.html[JMX GUI] requires the JConsole
jar when run as a JConsole plugin. Otherwise it has no external
diff --git a/src/site/markdown/log4j-appserver.md.vm b/src/site/markdown/log4j-appserver.md.vm
deleted file mode 100644
index 7128bc22ed..0000000000
--- a/src/site/markdown/log4j-appserver.md.vm
+++ /dev/null
@@ -1,59 +0,0 @@
-<!-- vim: set syn=markdown : -->
-<!--
- 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: turn this into a velocity template for all the version numbers -->
-
-#set($h1 = '#')
-#set($h2 = '##')
-#set($h3 = '###')
-#set($h4 = '####')
-
-$h1 Application Server Integration
-
-The Application Server module provides support for integrating Log4j into various Java Application Servers.
-
-$h2 Apache Tomcat
-
-Log4j may be used as the logging framework for Apache Tomcat. This support is implemented automatically by including
-the log4j-api, log4j-core, and log4j-appserver jars in the boot classpath. A file named log4j2-tomcat.xml,
-log4j2-tomcat.json, log4j2-tomcat.yaml, log4j2-tomcat.yml, or log4j2-tomcat.properties must also be placed
-in the boot classpath. This is most easily done by:
-
-1. Creating a set of directories in catalina home named log4j2/lib and log4j2/conf.
-2. Placing log4j2-api-${Log4jReleaseVersion}.jar, log4j2-core-${Log4jReleaseVersion}.jar, and
-log4j2-appserver-${Log4jReleaseVersion}.jar in the log4j2/lib directory.
-3. Creating a file named log4j2-tomcat.xml, log4j2-tomcat.json, log4j2-tomcat.yaml, log4j2-tomcat.yml, or
-log4j2-tomcat.properties in the log4j2/conf directory.
-4. Create or modify setenv.sh in the tomcat bin directory to include
-```CLASSPATH=$CATALINA_HOME/log4j2/lib/*:$CATALINA_HOME/log4j2/conf```
-
-$h3 Requirements
-
-Requires Tomcat 8.5 or later.
-
-$h2 Eclipse Jetty
-
-Log4j may be used as the logging framework for Eclipse Jetty.
-
-To direct Jetty to use this class, set the system property `org.eclipse.jetty.util.log.class` to `org.apache.logging.log4j.appserver.jetty.Log4j2Logger`.
-
-From the command line with:
-```-Dorg.eclipse.jetty.util.log.class = org.apache.logging.log4j.appserver.jetty.Log4j2Logger```
-
-Programmatically with:
-```System.setProperty("org.eclipse.jetty.util.log.class", "org.apache.logging.log4j.appserver.jetty.Log4j2Logger");```
-
\ No newline at end of file
diff --git a/src/site/markdown/log4j-flume-ng.md.vm b/src/site/markdown/log4j-flume-ng.md.vm
index 87a073a876..1a775789d7 100644
--- a/src/site/markdown/log4j-flume-ng.md.vm
+++ b/src/site/markdown/log4j-flume-ng.md.vm
@@ -118,11 +118,6 @@ Flume Embedded Appender into an application.
<artifactId>log4j-slf4j-impl</artifactId>
<version>${dollar}{log4j.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-jcl</artifactId>
- <version>${dollar}{log4j.version}</version>
- </dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
@@ -177,11 +172,6 @@ Flume Embedded Appender into an application.
<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>
diff --git a/src/site/markdown/log4j-jcl.md b/src/site/markdown/log4j-jcl.md
deleted file mode 100644
index fdb15bfbbe..0000000000
--- a/src/site/markdown/log4j-jcl.md
+++ /dev/null
@@ -1,33 +0,0 @@
-<!-- vim: set syn=markdown : -->
-<!--
- 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.
--->
-
-# Commons Logging Bridge
-
-The Commons Logging Bridge allows applications coded to the Commons Logging API to use
-Log4j 2 as the implementation.
-
-## Requirements
-
-The Commons Logging Bridge is dependent on the Log4j 2 API and Commons Logging.
-For more information, see [Runtime Dependencies](runtime-dependencies.html).
-
-## Usage
-
-Using the Commons Logging Bridge is straightforward. Simply add the bridge jar along with
-the other Log4j 2 jars and the Commons Logging jar, and all logging done using the
-Commons Logging API will be routed to Log4j.
diff --git a/src/site/markdown/maven-artifacts.md.vm b/src/site/markdown/maven-artifacts.md.vm
index 4270641b78..472d2b1a56 100644
--- a/src/site/markdown/maven-artifacts.md.vm
+++ b/src/site/markdown/maven-artifacts.md.vm
@@ -183,13 +183,6 @@ then remove any log4j 1.x dependencies and add the following.
#dependencies(['log4j-1.2-api'])
-$h3 Apache Commons Logging Bridge
-
-If existing components use Apache Commons Logging 1.x and you want to have this logging routed to Log4j 2,
-then add the following but do not remove any Commons Logging 1.x dependencies.
-
-#dependencies(['log4j-jcl'])
-
$h3 SLF4J Bridge
If existing components use SLF4J and you want to have this logging routed to Log4j 2, then add the
diff --git a/src/site/site.xml b/src/site/site.xml
index 032120a8c2..87aa7647f4 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -280,7 +280,6 @@
<menu name="Internal Components" inherit="top" img="img/glyphicons/layers.png">
<item name="API" href="log4j-api.html"/>
<item name="Implementation" href="log4j-core.html"/>
- <item name="Commons Logging Bridge" href="log4j-jcl.html"/>
<item name="Log4j 1.2 API" href="log4j-1.2-api.html"/>
<item name="SLF4J Binding" href="log4j-slf4j-impl.html"/>
<item name="JUL Adapter" href="log4j-jul.html"/>
@@ -288,7 +287,6 @@
<item name="Log4j 2 to SLF4J Adapter" href="log4j-to-slf4j.html"/>
<item name="JDBC Appender" href="log4j-jdbc-dbcp2.html"/>
<item name="Apache Flume Appender" href="log4j-flume-ng.html"/>
- <item name="Application Server Integration" href="log4j-appserver.html"/>
<item name="MongoDB 4 appender" href="log4j-mongodb4.html"/>
<item name="IO Streams" href="log4j-iostreams.html"/>
<item name="Docker Support" href="log4j-docker.html"/>