log4j
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j</artifactId>
<version>3.0.0-beta3</version>
</dependency><?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>3.0.0-beta3</version>
</parent>
<artifactId>log4j</artifactId>
<version>3.0.0-beta3</version>
<packaging>pom</packaging>
<name>Apache Log4j Parent</name>
<description>Apache Log4j Parent</description>
<url>https://logging.apache.org/log4j/3.x/</url>
<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<properties>
<jackson-bom.version>2.18.1</jackson-bom.version>
<log4jSigningUserName>rgoers@apache.org</log4jSigningUserName>
<jmdns.version>3.5.12</jmdns.version>
<felix.version>7.0.5</felix.version>
<bnd.baseline.skip>true</bnd.baseline.skip>
<log4j2-custom-layout.version>1.1.0</log4j2-custom-layout.version>
<log4j2-logstash-layout.version>0.18</log4j2-logstash-layout.version>
<commons-dbcp2.version>2.12.0</commons-dbcp2.version>
<nashorn.version>15.4</nashorn.version>
<docker-maven-plugin.version>0.45.1</docker-maven-plugin.version>
<osgi.framework.version>1.10.0</osgi.framework.version>
<log4jReleaseManager>Ralph Goers</log4jReleaseManager>
<system-stubs.version>2.1.7</system-stubs.version>
<java-allocation-instrumenter.version>3.3.4</java-allocation-instrumenter.version>
<maven.javadoc.skip>true</maven.javadoc.skip>
<xmlunit.version>2.10.0</xmlunit.version>
<jspecify.version>1.0.0</jspecify.version>
<commons-lang3.version>3.17.0</commons-lang3.version>
<commons-codec.version>1.17.1</commons-codec.version>
<junit.version>4.13.2</junit.version>
<groovy.version>4.0.23</groovy.version>
<jna.version>5.15.0</jna.version>
<log4jReleaseVersion>3.0.0-alpha1</log4jReleaseVersion>
<osgi.resource.version>1.0.1</osgi.resource.version>
<oro.version>2.0.8</oro.version>
<maven.version>3.9.9</maven.version>
<log4jParentDir>${basedir}</log4jParentDir>
<h2.version>2.3.232</h2.version>
<HdrHistogram.version>2.2.2</HdrHistogram.version>
<plexus-utils.version>3.5.1</plexus-utils.version>
<jmh.version>1.37</jmh.version>
<byte-buddy.version>1.15.10</byte-buddy.version>
<maven.site.skip>true</maven.site.skip>
<guava.version>33.3.1-jre</guava.version>
<hamcrest.version>3.0</hamcrest.version>
<surefire.version>3.5.2</surefire.version>
<opentest4j.version>1.3.0</opentest4j.version>
<javax-jms.version>2.0.1</javax-jms.version>
<httpclient.version>4.5.14</httpclient.version>
<asciidoctor-maven-plugin.version>2.2.4</asciidoctor-maven-plugin.version>
<asm.version>9.6</asm.version>
<assertj.version>3.26.3</assertj.version>
<disruptor.version>4.0.0</disruptor.version>
<maven.site.deploy.skip>true</maven.site.deploy.skip>
<exam-maven-plugin.version>4.13.5</exam-maven-plugin.version>
<commons-io.version>2.17.0</commons-io.version>
<bsh.version>2.0b6</bsh.version>
<json-unit.version>3.5.0</json-unit.version>
<embedded-ldap.version>0.9.0</embedded-ldap.version>
<hsqldb.version>2.7.4</hsqldb.version>
<mockito.version>5.14.2</mockito.version>
<bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
<log4jReleaseKey>B3D8E1BA</log4jReleaseKey>
<junit-pioneer.version>2.3.0</junit-pioneer.version>
<httpcore.version>4.4.16</httpcore.version>
<pax-exam.version>4.13.5</pax-exam.version>
<spotbugs.skip>true</spotbugs.skip>
<junit-jupiter.version>5.11.3</junit-jupiter.version>
<commons-csv.version>1.12.0</commons-csv.version>
<awaitility.version>4.2.2</awaitility.version>
<org.eclipse.osgi.version>3.21.0</org.eclipse.osgi.version>
<jctools.version>4.0.5</jctools.version>
<velocity.version>1.7</velocity.version>
<commons-pool2.version>2.12.0</commons-pool2.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-osgi-test</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-layout-template-json-test</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jdbc</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-layout-jackson</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy-bom</artifactId>
<version>${groovy.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson-bom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit-jupiter.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-bom</artifactId>
<version>${mockito.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
</dependency>
<dependency>
<groupId>org.apache-extras.beanshell</groupId>
<artifactId>bsh</artifactId>
<version>${bsh.version}</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>${byte-buddy.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>${commons-csv.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>${commons-dbcp2.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${commons-pool2.version}</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>${disruptor.version}</version>
</dependency>
<dependency>
<groupId>org.zapodot</groupId>
<artifactId>embedded-ldap-junit</artifactId>
<version>${embedded-ldap.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava-testlib</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>${hamcrest.version}</version>
</dependency>
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
<version>${HdrHistogram.version}</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.java-allocation-instrumenter</groupId>
<artifactId>java-allocation-instrumenter</artifactId>
<version>${java-allocation-instrumenter.version}</version>
</dependency>
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>${javax-jms.version}</version>
</dependency>
<dependency>
<groupId>org.jctools</groupId>
<artifactId>jctools-core</artifactId>
<version>${jctools.version}</version>
</dependency>
<dependency>
<groupId>org.jmdns</groupId>
<artifactId>jmdns</artifactId>
<version>${jmdns.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>${jmh.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>${jmh.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
</dependency>
<dependency>
<groupId>net.javacrumbs.json-unit</groupId>
<artifactId>json-unit</artifactId>
<version>${json-unit.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<version>${junit-pioneer.version}</version>
</dependency>
<dependency>
<groupId>com.github.ivandzf</groupId>
<artifactId>log4j2-custom-layout</artifactId>
<version>${log4j2-custom-layout.version}</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.vlkan.log4j2</groupId>
<artifactId>log4j2-logstash-layout</artifactId>
<version>${log4j2-logstash-layout.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.nashorn</groupId>
<artifactId>nashorn-core</artifactId>
<version>${nashorn.version}</version>
</dependency>
<dependency>
<groupId>org.opentest4j</groupId>
<artifactId>opentest4j</artifactId>
<version>${opentest4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>${felix.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>${org.eclipse.osgi.version}</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.framework</artifactId>
<version>${osgi.framework.version}</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.resource</artifactId>
<version>${osgi.resource.version}</version>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>${oro.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-native</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-link-assembly</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-spi</artifactId>
<version>${pax-exam.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>${plexus-utils.version}</version>
</dependency>
<dependency>
<groupId>uk.org.webcompere</groupId>
<artifactId>system-stubs-core</artifactId>
<version>${system-stubs.version}</version>
</dependency>
<dependency>
<groupId>uk.org.webcompere</groupId>
<artifactId>system-stubs-jupiter</artifactId>
<version>${system-stubs.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>${velocity.version}</version>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>${xmlunit.version}</version>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-matchers</artifactId>
<version>${xmlunit.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>biz.aQute.bnd</groupId>
<artifactId>biz.aQute.bnd.annotation</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${error-prone.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jspecify</groupId>
<artifactId>jspecify</artifactId>
<version>${jspecify.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.annotation</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.annotation.bundle</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-annotations</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>exam-maven-plugin</artifactId>
<version>${exam-maven-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<executions>
<execution>
<id>delete-module-descriptors</id>
<phase>process-sources</phase>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>${project.build.outputDirectory}</directory>
<includes>
<include>module-info.class</include>
<include>META-INF/versions/**</include>
</includes>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>ban-logging-dependencies</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>org.slf4j:jcl-over-slf4j</exclude>
<exclude>org.springframework:spring-jcl</exclude>
<exclude>log4j:log4j</exclude>
<exclude>org.slf4j:log4j-over-slf4j</exclude>
<exclude>ch.qos.reload4j:reload4j</exclude>
<exclude>org.slf4j:slf4j-log4j12</exclude>
<exclude>org.slf4j:slf4j-reload4j</exclude>
<exclude>org.ops4j.pax.logging:*</exclude>
<exclude>ch.qos.logback:*</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<executions>
<execution>
<id>ban-static-transitive</id>
<phase>verify</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<continueExecuting>false</continueExecuting>
<scripts>
<script>import java.io.StringWriter
import java.util.spi.ToolProvider
if ("jar" != project.packaging) {
log.info("Skipping module descriptor check, since the project type is not `jar`.")
return
}
String jarFile = project.build.directory + "/" + project.build.finalName + ".jar";
if (!new File(jarFile).exists()) {
log.info("Skipping module descriptor check, since `" + jarFile + "` is missing.")
return
}
StringWriter out = new StringWriter()
StringWriter err = new StringWriter()
ToolProvider jar = ToolProvider.findFirst("jar").orElseThrow()
int result = jar.run(new PrintWriter(out), new PrintWriter(err), "-d", "-f", jarFile)
if (result != 0) {
throw new RuntimeException("Failed to decompile the module descriptor in `" + jarFile + "`:\n" + err)
}
log.debug("Module descriptor: " + out)
for (String line : out.toString().split("\r?\n", -1)) {
if (line.contains("static") && line.contains("transitive")) {
throw new RuntimeException("The `static` and `transitive` modifiers should not be use together: " + line)
}
}
log.info("Successfully verified module descriptor in `" + jarFile + "`.")</script>
</scripts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>plugin-processing</id>
<activation>
<file>
<exists>.log4j-plugin-processing-activator</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>define-log4jPluginPackageForTests</id>
<phase>process-test-resources</phase>
<goals>
<goal>bsh-property</goal>
</goals>
<configuration>
<properties>
<property>log4jPluginPackageForTests</property>
</properties>
<source>import java.util.Locale;
import java.util.Random;
String groupId = project.getGroupId();
String sanitizedArtifactId = project
.getArtifactId()
.toLowerCase(Locale.US)
.replaceFirst("^log4j-", "")
.replaceAll("[^a-z]", "_");
int salt = new Random(sanitizedArtifactId.hashCode()).nextInt(1000);
String log4jPluginPackageForTests = String.format("%s.%s.internal%d", new Object[] {
groupId, sanitizedArtifactId, salt
});</source>
</configuration>
</execution>
<execution>
<id>define-log4jDocgenDescriptorFilepath</id>
<phase>process-resources</phase>
<goals>
<goal>bsh-property</goal>
</goals>
<configuration>
<properties>
<property>log4jDocgenDescriptorFilepath</property>
</properties>
<source>Properties properties = project.getProperties();
String pluginDescriptorsDir = "true".equals(properties.getProperty("log4j.docgen.skip"))
? properties.getProperty("log4j.docgen.pluginDescriptorsDir.skipped")
: properties.getProperty("log4j.docgen.pluginDescriptorsDir");
String log4jDocgenDescriptorFilepath = String.format("%s/%s-plugins.xml", new Object[] {
pluginDescriptorsDir, project.getArtifactId()
});</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<configuration>
<compilerArgs combine.children="append">
<arg>-ApluginPackage=${log4jPluginPackageForTests}</arg>
</compilerArgs>
</configuration>
</execution>
</executions>
<configuration>
<annotationProcessorPaths combine.children="append">
<path>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-docgen</artifactId>
<version>${log4j-docgen.version}</version>
</path>
<path>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-plugin-processor</artifactId>
<version>${project.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs combine.children="append">
<arg>-Alog4j.docgen.descriptorFilePath=${log4jDocgenDescriptorFilepath}</arg>
<arg>-Alog4j.docgen.groupId=${project.groupId}</arg>
<arg>-Alog4j.docgen.artifactId=${project.artifactId}</arg>
<arg>-Alog4j.docgen.version=${project.version}</arg>
<arg>-Alog4j.docgen.description=${project.description}</arg>
<arg>-Alog4j.docgen.typeFilter.excludePattern=${log4j.docgen.typeFilter.excludePattern}</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<log4j.docgen.pluginDescriptorsDir.skipped>${maven.multiModuleProjectDirectory}/target/plugin-descriptors/skipped</log4j.docgen.pluginDescriptorsDir.skipped>
<log4j.docgen.pluginDescriptorsDir>${log4j.docgen.pluginDescriptorsDir.phase2}</log4j.docgen.pluginDescriptorsDir>
</properties>
</profile>
</profiles>
</project>