Repository: logging-log4j2 Updated Branches: refs/heads/master 9422ca748 -> 3cb6238c1
LOG4J2-2025 - Provide support for overriding the Tomcat Log class in Tomcat 8.5+. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/3cb6238c Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3cb6238c Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3cb6238c Branch: refs/heads/master Commit: 3cb6238c148f529abb97a4894e36bf7c764ee60b Parents: 9422ca7 Author: Ralph Goers <[email protected]> Authored: Mon Sep 11 00:01:58 2017 -0700 Committer: Ralph Goers <[email protected]> Committed: Mon Sep 11 00:01:58 2017 -0700 ---------------------------------------------------------------------- .../org/apache/logging/log4j/LogManager.java | 25 +++ log4j-appserver/pom.xml | 211 +++++++++++++++++++ .../log4j/appserver/tomcat/TomcatLogger.java | 189 +++++++++++++++++ .../log4j/appserver/tomcat/package-info.java | 20 ++ .../services/org.apache.juli.logging.Log | 1 + log4j-appserver/src/site/markdown/index.md.vm | 46 ++++ log4j-appserver/src/site/site.xml | 52 +++++ log4j-distribution/pom.xml | 19 +- pom.xml | 1 + src/changes/changes.xml | 5 +- src/site/site.xml | 1 + 11 files changed, 568 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java b/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java index 3f366bb..ecff443 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java @@ -333,6 +333,31 @@ public class LogManager { } } + + /** + * Returns a LoggerContext + * + * @param fqcn The fully qualified class name of the Class that this method is a member of. + * @param loader The ClassLoader for the context. If null the context will attempt to determine the appropriate + * ClassLoader. + * @param currentContext if false the LoggerContext appropriate for the caller of this method is returned. For + * example, in a web application if the caller is a class in WEB-INF/lib then one LoggerContext may be + * returned and if the caller is a class in the container's classpath then a different LoggerContext may + * be returned. If true then only a single LoggerContext will be returned. + * @param configLocation The URI for the configuration to use. + * @param name The LoggerContext name. + * @return a LoggerContext. + */ + protected static LoggerContext getContext(final String fqcn, final ClassLoader loader, + final boolean currentContext, URI configLocation, String name) { + try { + return factory.getContext(fqcn, loader, null, currentContext, configLocation, name); + } catch (final IllegalStateException ex) { + LOGGER.warn(ex.getMessage() + " Using SimpleLogger"); + return new SimpleLoggerContextFactory().getContext(fqcn, loader, null, currentContext); + } + } + /** * Shutdown using the LoggerContext appropriate for the caller of this method. * This is equivalent to calling {@code LogManager.shutdown(false)}. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-appserver/pom.xml ---------------------------------------------------------------------- diff --git a/log4j-appserver/pom.xml b/log4j-appserver/pom.xml new file mode 100644 index 0000000..34822ef --- /dev/null +++ b/log4j-appserver/pom.xml @@ -0,0 +1,211 @@ +<?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"> + <parent> + <artifactId>log4j</artifactId> + <groupId>org.apache.logging.log4j</groupId> + <version>2.9.1-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <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> + <log4jParentDir>${basedir}/..</log4jParentDir> + <docLabel>Web Documentation</docLabel> + <projectDir>/log4j-appserver</projectDir> + <tomcat.version>8.5.20</tomcat.version> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.0.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-catalina</artifactId> + <version>${tomcat.version}</version> + <exclusions> + <exclusion> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-annotations-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-jsp-api</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.tomcat</groupId> + <artifactId>tomcat-el-api</artifactId> + </exclusion> + </exclusions> + </dependency> + + <!-- Test dependencies --> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <configuration> + <instructions> + <!-- we compile against 3.0, but require 2.5 minimum --> + <Fragment-Host>org.apache.logging.log4j.core</Fragment-Host> + <Import-Package>javax.servlet;version="[2.5,4)",*</Import-Package> + <Export-Package>org.apache.logging.log4j.web</Export-Package> + </instructions> + </configuration> + </plugin> + </plugins> + </build> + <reporting> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-changes-plugin</artifactId> + <version>${changes.plugin.version}</version> + <reportSets> + <reportSet> + <reports> + <report>changes-report</report> + </reports> + </reportSet> + </reportSets> + <configuration> + <issueLinkTemplate>%URL%/show_bug.cgi?id=%ISSUE%</issueLinkTemplate> + <useJql>true</useJql> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>${checkstyle.plugin.version}</version> + <configuration> + <!--<propertiesLocation>${vfs.parent.dir}/checkstyle.properties</propertiesLocation> --> + <configLocation>${log4jParentDir}/checkstyle.xml</configLocation> + <suppressionsLocation>${log4jParentDir}/checkstyle-suppressions.xml</suppressionsLocation> + <enableRulesSummary>false</enableRulesSummary> + <propertyExpansion>basedir=${basedir}</propertyExpansion> + <propertyExpansion>licensedir=${log4jParentDir}/checkstyle-header.txt</propertyExpansion> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${javadoc.plugin.version}</version> + <configuration> + <bottom><![CDATA[<p align="center">Copyright © {inceptionYear}-{currentYear} {organizationName}. All Rights Reserved.<br /> + Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, + and the Apache Log4j logo are trademarks of The Apache Software Foundation.</p>]]></bottom> + <!-- module link generation is completely broken in the javadoc plugin for a multi-module non-aggregating + project --> + <detectOfflineLinks>false</detectOfflineLinks> + <linksource>true</linksource> + <links> + <link>http://docs.oracle.com/javaee/6/api/</link> + </links> + </configuration> + <reportSets> + <reportSet> + <id>non-aggregate</id> + <reports> + <report>javadoc</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <version>${findbugs.plugin.version}</version> + <configuration> + <fork>true</fork> + <jvmArgs>-Duser.language=en</jvmArgs> + <threshold>Normal</threshold> + <effort>Default</effort> + <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>${jxr.plugin.version}</version> + <reportSets> + <reportSet> + <id>non-aggregate</id> + <reports> + <report>jxr</report> + </reports> + </reportSet> + <reportSet> + <id>aggregate</id> + <reports> + <report>aggregate</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <version>${pmd.plugin.version}</version> + <configuration> + <targetJdk>${maven.compiler.target}</targetJdk> + </configuration> + </plugin> + </plugins> + </reporting> +</project> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java ---------------------------------------------------------------------- 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 new file mode 100644 index 0000000..f2b66d2 --- /dev/null +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java @@ -0,0 +1,189 @@ +/* + * 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 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. + */ +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(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(Object o) { + logger.logIfEnabled(FQCN, Level.TRACE, null, o, null); + } + + @Override + public void trace(Object o, Throwable throwable) { + logger.logIfEnabled(FQCN, Level.TRACE, null, o, throwable); + } + + @Override + public void debug(Object o) { + logger.logIfEnabled(FQCN, Level.DEBUG, null, o, null); + } + + @Override + public void debug(Object o, Throwable throwable) { + logger.logIfEnabled(FQCN, Level.DEBUG, null, o, throwable); + } + + @Override + public void info(Object o) { + logger.logIfEnabled(FQCN, Level.INFO, null, o, null); + } + + @Override + public void info(Object o, Throwable throwable) { + logger.logIfEnabled(FQCN, Level.INFO, null, o, throwable); + } + + @Override + public void warn(Object o) { + logger.logIfEnabled(FQCN, Level.WARN, null, o, null); + } + + @Override + public void warn(Object o, Throwable throwable) { + logger.logIfEnabled(FQCN, Level.WARN, null, o, throwable); + } + + @Override + public void error(Object o) { + logger.logIfEnabled(FQCN, Level.ERROR, null, o, null); + } + + @Override + public void error(Object o, Throwable throwable) { + logger.logIfEnabled(FQCN, Level.ERROR, null, o, throwable); + } + + @Override + public void fatal(Object o) { + logger.logIfEnabled(FQCN, Level.FATAL, null, o, null); + } + + @Override + public void fatal(Object o, Throwable throwable) { + logger.logIfEnabled(FQCN, Level.FATAL, null, o, throwable); + } + + /** + * Internal LogManager. + */ + private static class PrivateManager extends LogManager { + + public static LoggerContext getContext() { + ClassLoader cl = TomcatLogger.class.getClassLoader(); + URI uri = null; + for (String fileName : FILE_NAMES) { + try { + URL url = cl.getResource(fileName); + if (url != null) { + uri = url.toURI(); + break; + } + } catch (URISyntaxException ex) { + // Ignore the exception. + } + } + if (uri == null) { + return getContext(FQCN, cl, false); + } else { + return getContext(FQCN, cl, false, uri, "Tomcat"); + } + } + + public static ExtendedLogger getLogger(final String name) { + LoggerContext context = getContext(); + return context.getLogger(name); + } + } +} http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java ---------------------------------------------------------------------- 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 new file mode 100644 index 0000000..ff3e351 --- /dev/null +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java @@ -0,0 +1,20 @@ +/* + * 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 Tomcat 8.5 or greater. + */ +package org.apache.logging.log4j.appserver.tomcat; http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-appserver/src/main/resources/META-INF/services/org.apache.juli.logging.Log ---------------------------------------------------------------------- diff --git a/log4j-appserver/src/main/resources/META-INF/services/org.apache.juli.logging.Log b/log4j-appserver/src/main/resources/META-INF/services/org.apache.juli.logging.Log new file mode 100644 index 0000000..ee4963a --- /dev/null +++ b/log4j-appserver/src/main/resources/META-INF/services/org.apache.juli.logging.Log @@ -0,0 +1 @@ +org.apache.logging.log4j.appserver.tomcat.TomcatLogger \ No newline at end of file http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-appserver/src/site/markdown/index.md.vm ---------------------------------------------------------------------- diff --git a/log4j-appserver/src/site/markdown/index.md.vm b/log4j-appserver/src/site/markdown/index.md.vm new file mode 100644 index 0000000..0643917 --- /dev/null +++ b/log4j-appserver/src/site/markdown/index.md.vm @@ -0,0 +1,46 @@ +<!-- 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 Tomcat + +Log4j may be used as the logging framework for 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. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-appserver/src/site/site.xml ---------------------------------------------------------------------- diff --git a/log4j-appserver/src/site/site.xml b/log4j-appserver/src/site/site.xml new file mode 100644 index 0000000..7145712 --- /dev/null +++ b/log4j-appserver/src/site/site.xml @@ -0,0 +1,52 @@ +<!-- + 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 name="Log4j App Server Integration" + xmlns="http://maven.apache.org/DECORATION/1.4.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/DECORATION/1.4.0 http://maven.apache.org/xsd/decoration-1.4.0.xsd"> + <body> + <links> + <item name="Apache" href="http://www.apache.org/" /> + <item name="Logging Services" href="http://logging.apache.org/"/> + <item name="Log4j" href="../index.html"/> + </links> + + <!-- Component-specific reports --> + <menu ref="reports"/> + + <!-- Overall Project Info --> + <menu name="Log4j Project Information" img="icon-info-sign"> + <item name="Dependencies" href="../dependencies.html" /> + <item name="Dependency Convergence" href="../dependency-convergence.html" /> + <item name="Dependency Management" href="../dependency-management.html" /> + <item name="Project Team" href="../team-list.html" /> + <item name="Mailing Lists" href="../mail-lists.html" /> + <item name="Issue Tracking" href="../issue-tracking.html" /> + <item name="Project License" href="../license.html" /> + <item name="Source Repository" href="../source-repository.html" /> + <item name="Project Summary" href="../project-summary.html" /> + </menu> + + <menu name="Log4j Project Reports" img="icon-cog"> + <item name="Changes Report" href="../changes-report.html" /> + <item name="JIRA Report" href="../jira-report.html" /> + <item name="Surefire Report" href="../surefire-report.html" /> + <item name="RAT Report" href="../rat-report.html" /> + </menu> + </body> +</project> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/log4j-distribution/pom.xml ---------------------------------------------------------------------- diff --git a/log4j-distribution/pom.xml b/log4j-distribution/pom.xml index 74e0dd5..c3aa623 100644 --- a/log4j-distribution/pom.xml +++ b/log4j-distribution/pom.xml @@ -256,19 +256,36 @@ <classifier>javadoc</classifier> </dependency> <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-liquibase</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-liquibase</artifactId> <version>${project.version}</version> + <classifier>sources</classifier> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-liquibase</artifactId> <version>${project.version}</version> + <classifier>javadoc</classifier> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-appserver</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-appserver</artifactId> + <version>${project.version}</version> <classifier>sources</classifier> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-liquibase</artifactId> + <artifactId>log4j-appserver</artifactId> <version>${project.version}</version> <classifier>javadoc</classifier> </dependency> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index a8e3632..7435004 100644 --- a/pom.xml +++ b/pom.xml @@ -1294,6 +1294,7 @@ <module>log4j-iostreams</module> <module>log4j-jul</module> <module>log4j-liquibase</module> + <module>log4j-appserver</module> </modules> <profiles> <profile> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 773663e..1a8a79a 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -31,8 +31,11 @@ - "remove" - Removed --> <release version="2.9.1" date="2017-MM-DD" description="GA Release 2.9.1"> + <action issue="LOG4J2-2025" dev="rgoers" type="update"> + Provide support for overriding the Tomcat Log class in Tomcat 8.5+. + </action> <action issue="LOG4J2-2030" dev="rgoers" type="fix"> - Inspect all known ClassLoaders to locate the service provider" + Inspect all known ClassLoaders to locate the service provider. </action> <action issue="LOG4J2-2028" dev="rgoers" type="fix" due-to="Jason Tedor"> Java 9 StackLocator was not properly skipping the initial stack frames. http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3cb6238c/src/site/site.xml ---------------------------------------------------------------------- diff --git a/src/site/site.xml b/src/site/site.xml index c684752..dca832a 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -270,6 +270,7 @@ <item name="Log4j Tag Library" href="log4j-taglib/index.html"/> <item name="Log4j JMX GUI" href="log4j-jmx-gui/index.html"/> <item name="Log4j Web Application Support" href="log4j-web/index.html"/> + <item name="Log4j Application Server Integration" href="log4j-appserver/index.html"/> <item name="Log4j NoSQL support" href="log4j-nosql/index.html"/> <item name="Log4j IO Streams" href="log4j-iostreams/index.html"/> <item name="Log4j Liquibase Binding" href="log4j-liquibase/index.html"/>
