# log4j-core

## Overview

### Description
A versatile, industrial-grade, and reference implementation of the Log4j API. It bundles a rich set of components to assist various use cases:
- Appenders targeting files, network sockets, databases, SMTP servers;
- Layouts that can render CSV, HTML, JSON, Syslog, etc. formatted outputs;
- Filters that can be configured using log event rates, regular expressions, scripts, time, etc. It contains several extension points to introduce custom components, if needed.

### Snippets

#### Apache Maven
```xml
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.26.1</version>
</dependency>
```

### Maven POM File
```xml
<?xml version="1.0" encoding="UTF-8"?>
<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</artifactId>
    <version>2.26.1</version>
    <relativePath>../log4j-parent</relativePath>
  </parent>
  <artifactId>log4j-core</artifactId>
  <version>2.26.1</version>
  <name>Apache Log4j Core</name>
  <description>A versatile, industrial-grade, and reference implementation of the Log4j API. It bundles a rich set of components to assist various use cases: Appenders targeting files, network sockets, databases, SMTP servers; Layouts that can render CSV, HTML, JSON, Syslog, etc. formatted outputs; Filters that can be configured using log event rates, regular expressions, scripts, time, etc. It contains several extension points to introduce custom components, if needed.</description>
  <url>https://logging.apache.org/log4j/2.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>
    <maven.test.skip>true</maven.test.skip>
    <disruptor.support.range>[3.4,5)</disruptor.support.range>
    <bnd-extra-package-options>org.jspecify.*;resolution:=optional,
      com.conversantmedia.util.concurrent;resolution:=optional;
      com.fasterxml.jackson.*;resolution:=optional,
      com.lmax.disruptor.*;version="${disruptor.support.range}";resolution:=optional,
      javax.activation;resolution:=optional,
      javax.jms;version="[1.1,3)";resolution:=optional,
      javax.mail.*;version="[1.6,2)";resolution:=optional,
      org.apache.commons.compress.*;resolution:=optional,
      org.apache.commons.csv;resolution:=optional,
      org.apache.kafka.*;resolution:=optional,
      org.codehaus.stax2.*;resolution:=optional,
      org.jctools.*;resolution:=optional,
      org.zeromq;resolution:=optional,
      javax.lang.model.*;resolution:=optional,
      javax.tools;resolution:=optional,
      java.sql;resolution:=optional,
      javax.sql;resolution:=optional,
      java.util.logging;resolution:=optional,
      java.lang.management;resolution:=optional,
      javax.management.*;resolution:=optional,
      javax.naming;resolution:=optional</bnd-extra-package-options>
    <maven.javadoc.skip>false</maven.javadoc.skip>
    <log4j.docgen.pluginDescriptorsDir>${log4j.docgen.pluginDescriptorsDir.phase1}</log4j.docgen.pluginDescriptorsDir>
    <bnd-multi-release>true</bnd-multi-release>
    <bnd-extra-module-options>org.osgi.core;static=true;transitive=false,
      java.logging;static=true,
      java.sql;static=true,
      com.fasterxml.jackson.annotation;transitive=false,
      com.lmax.disruptor;transitive=false,
      com.fasterxml.jackson.core;transitive=false,
      com.fasterxml.jackson.databind;transitive=false,
      com.fasterxml.jackson.dataformat.xml;transitive=false,
      com.fasterxml.jackson.dataformat.yaml;transitive=false,
      java.management;transitive=false;static=true,
      java.naming;transitive=false,
      org.apache.commons.csv;transitive=false,
      org.jspecify;transitive=false,
      org.zeromq.jeromq;transitive=false,
      com.conversantmedia.disruptor;substitute="disruptor";transitive=false;static=true,
      kafka.clients;substitute="kafka-clients";transitive=false;static=true,
      javax.jms.api;substitute="javax.jms-api";transitive=false;static=true,
      javax.mail.api;substitute="javax.mail-api";transitive=false;static=true</bnd-extra-module-options>
  </properties>
  <dependencies>
    <dependency>
      <groupId>javax.activation</groupId>
      <artifactId>javax.activation-api</artifactId>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>javax.jms</groupId>
      <artifactId>javax.jms-api</artifactId>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>javax.mail</groupId>
      <artifactId>javax.mail-api</artifactId>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.jspecify</groupId>
      <artifactId>jspecify</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.core</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-compress</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-csv</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.conversantmedia</groupId>
      <artifactId>disruptor</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.lmax</groupId>
      <artifactId>disruptor</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-xml</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-yaml</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.jctools</groupId>
      <artifactId>jctools-core</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.zeromq</groupId>
      <artifactId>jeromq</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka-clients</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>javax.mail</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.codehaus.woodstox</groupId>
      <artifactId>stax2-api</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.build.directory}/log4j-core-java9</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>unpack-classes</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>unpack</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>org.apache.logging.log4j</groupId>
                  <artifactId>log4j-core-java9</artifactId>
                  <version>${project.version}</version>
                  <type>zip</type>
                  <overWrite>false</overWrite>
                </artifactItem>
              </artifactItems>
              <includes>**/*.class</includes>
              <excludes>**/*.java</excludes>
              <outputDirectory>${project.build.directory}</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>true</overWriteSnapshots>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
```

#### Metadata
Age:25 days ago

#### Licenses
- Apache-2.0

#### Organization
[org.apache.logging.log4j](https://central.sonatype.com/namespace/org.apache.logging.log4j)

#### External Resources
- [Project URL](https://logging.apache.org/log4j/2.x/)
- [Issue Tracker URL](https://github.com/apache/logging-log4j2/issues)
- [Source Control](https://github.com/apache/logging-log4j2)
- [Continuous Integration](https://github.com/apache/logging-log4j2/actions)

#### Known Contributors
Bruce Brouwer, Matt Sicker, Scott Deboy, Carter Kozak, Raman Gupta, Gary Gregory, Remko Popma, Mikael Ståldal, Piotr P. Karwasz, Volkan Yazıcı, Christian Grobmeier, Ralph Goers, Ron Grabowski, Nick Williams

Sonatype Guide See vulnerability info [View](https://guide.sonatype.com/component/maven/org.apache.logging.log4j:log4j-core/2.26.1)
