Tag 2.9.0
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEnQpWqqDWDgwMfczAtMcIk7Yrq+gFAl8oxzwACgkQtMcIk7Yr
q+j+pRAApu5ny+ABsRahKDi29NPokprK4e4kVhU7nZd+TTLCPrIlNjynH+U08XM1
kZL9gjPshjX2el83gSlrsqB0A3bQqrfH1QAk5dkjgu06NKJfQg4kgc39RdbjmSCn
6vEUGllHHaTJamS/IsiY5XgUJjNtg5IKy+F3nvXD3lwChfbrqTU08PXdMh5H1F4N
a50cFZ/pb2M0FrUA4WyB6d6wpTJs4+ZGb6IHOJvqUQG+AoB6G1ydIy8UOZfraiCa
jmMp57cKyioogD9ZPL94j9F78jGhCRamYTmhTtVm1e5hPEGqax+AexiUgPXf8hSB
JdO2QjmOxjJ/pkAw8VzeyLZiMGn3fiPQiCJ3oCMAid/f6LfvMvb2SMjSO7xiXhe8
8xB/tr9j68iqsN014Yj2zLe4maL7l77+rgQcFauXzMei+wIfXTrxcDOLK67GXHu3
z8bO4kETgYVHTIIi1zcHta6trbApmaF2qpc5uzHmfCkXKzuu8UKqWiOgmlzGQixB
pRPeRPF2GWWncmg8vyoeLo/j9BdhExlxjikTg/7KgQh9bTXt63sN9Iei0X5esIci
NvcbVgzsXTZbKbhSGagguteaLcrgBDKABIf8XvZDTppNPHdSZI/xW+TO125ECFB4
boC0RWxGGmVGNC1FAJH1pWGmTvPlnO4ZnQ64+xPwujCG8pMz/40=
=16Py
-----END PGP SIGNATURE-----
[maven-release-plugin] prepare release log4j-2.9-rc1
27 files changed
tree: 5ba5a994151ecc7f714a57cb98c96c24a4bb4033
  1. .dockerignore
  2. .gitattributes
  3. .gitignore
  4. .mvn/
  5. .travis-toolchains.xml
  6. .travis.yml
  7. BUILDING.md
  8. CONTRIBUTING.md
  9. Dockerfile
  10. LICENSE.txt
  11. NOTICE.txt
  12. README.md
  13. RELEASE-NOTES.md
  14. checkstyle-header.txt
  15. checkstyle-import-control.xml
  16. checkstyle-suppressions.xml
  17. checkstyle.xml
  18. doap_log4j2.rdf
  19. findbugs-exclude-filter.xml
  20. jenkins-toolchains.xml
  21. log4j-1.2-api/
  22. log4j-api-java9/
  23. log4j-api/
  24. log4j-bom/
  25. log4j-core-its/
  26. log4j-core/
  27. log4j-distribution/
  28. log4j-flume-ng/
  29. log4j-iostreams/
  30. log4j-jcl/
  31. log4j-jmx-gui/
  32. log4j-jul/
  33. log4j-liquibase/
  34. log4j-nosql/
  35. log4j-osgi/
  36. log4j-perf/
  37. log4j-samples/
  38. log4j-slf4j-impl/
  39. log4j-taglib/
  40. log4j-to-slf4j/
  41. log4j-web/
  42. mvnw
  43. mvnw.cmd
  44. pom.xml
  45. src/
  46. toolchains-docker.xml
  47. toolchains-sample-linux.xml
  48. toolchains-sample-mac.xml
  49. toolchains-sample-win.xml
README.md

Apache Log4j 2

Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides many of the improvements available in Logback while fixing some inherent problems in Logback's architecture.

![Jenkins Status](https://builds.apache.org/buildStatus/icon?job=Log4j 2.x) Travis Status Coverage Status

Usage

Maven users can add the following dependencies to their pom.xml file:

<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.8</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.8</version>
  </dependency>
</dependencies>

Gradle users can add the following to their build.gradle file:

dependencies {
  compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.8'
  compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.8'
}

Basic usage of the Logger API:

package com.example;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;

public class Example {
    private static final Logger LOGGER = LogManager.getLogger();

    public static void main(String... args) {
        String thing = args.length > 0 ? args[0] : "world";
        LOGGER.info("Hello, {}!", thing);
        LOGGER.debug("Got calculated value only if debug enabled: {}", () -> doSomeCalculation());
    }

    private static Object doSomeCalculation() {
        // do some complicated calculation
    }
}

And an example log4j2.xml configuration file:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="com.example" level="INFO"/>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

Documentation

The Log4j 2 User's Guide is available here or as a downloadable PDF.

Requirements

Log4j 2.4 and greater requires Java 7, versions 2.0-alpha1 to 2.3 required Java 6. Some features require optional dependencies; the documentation for these features specifies the dependencies.

License

Apache Log4j 2 is distributed under the Apache License, version 2.0.

Download

How to download Log4j, and how to use it from Maven, Ivy and Gradle. You can access the latest development snapshot by using the Maven repository https://repository.apache.org/snapshots, see Snapshot builds.

Issue Tracking

Issues, bugs, and feature requests should be submitted to the JIRA issue tracking system for this project.

Pull request on GitHub are welcome, but please open a ticket in the JIRA issue tracker first, and mention the JIRA issue in the Pull Request.

Building From Source

Log4j requires Apache Maven 3.x. To build from source and install to your local Maven repository, execute the following:

mvn install

Contributing

We love contributions! Take a look at our contributing page.