The Apache Log4j 2 team is pleased to announce the Log4j 2.0-beta5 release!

Apache log4j is a well known framework for logging application behavior. 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

This is the seventh release of Log4j 2 and is being made available to encourage use and feedback from the community.

New features:

  • LOG4J2-207: Add JMX support. Thanks to Remko Popma.
  • LOG4J2-187: Add tag library. Thanks to Nick Williams.
  • LOG4J2-164: Add methods is/setEndOfBatch to LogEvent. Thanks to Remko Popma.
  • LOG4J2-163: Add support for asynchronous loggers. Thanks to Remko Popma.
  • LOG4J2-179: Add Logger interface APIs to log at given levels.
  • Added FlumePersistentManager which writes to BerkeleyDB and then writes to Flume asynchronously.
  • LOG4J2-155: Expose file appender configuration details via an advertisement mechanism.

Fixed Bugs:

  • LOG4J2-205: Fix deadlock in SocketAppender. Added option to not wait for socket reconnect.
  • LOG4J2-211: Removing extra spaces in entry and exit method output. Thanks to Nick Williams.
  • LOG4J2-212: Loggers without a "." had no parent logger.
  • LOG4J2-212: Call LoggerContext.stop when the application is shutdown.
  • LOG4J2-210: MapMessage was not enclosing key value in quotes when generating XML. Thanks to Arkin Yetis.
  • LOG4J2-198: FlumeAvroManager now uses Flume RPCClient.
  • LOG4J2-196: FlumeAvroManager now uses Flume RPCClient.
  • LOG4J2-207: Use the Maven group ID org.apache.logging.log4j for all artifacts.
  • LOG4J2-195: Unit tests now create files in the target directory. Thanks to Remko Popma.
  • LOG4J2-193: RollingFastFileAppender (in log4j-async) did not roll over. Thanks to Remko Popma.
  • LOG4J2-199: Highlight subprojects in sub-navigation. Thanks to Remko Popma.
  • LOG4J2-200: LoggerContext method renamed to removeFilter from removeFiler. Thanks to Remko Popma.
  • LOG4J2-194: ThrowableFormatOptionsTest failed on Windows due to CR/LF issue. Thanks to Remko Popma.
  • LOG4J2-190: BaseConfiguration addLoggerAppender saved appender using the Logger name. Thanks to Werner.
  • LOG4J2-189: The blocking parameter did not work properly on AsynchAppender. Thanks to Werner.
  • LOG4J2-188: appender-refs on AsynchAppender didn't support the level and filter elements. Thanks to Werner.
  • LOG4J2-176: Avoid IllegalArgumentException in AsynchAppender. Thanks to Remko Popma.
  • LOG4J2-181: OutputStreamManager now adds the layout header whenever the OutputStream is set.
  • LOG4J2-177: Fix NullPointerException in DatagramOutputStream when flush is called from multiple threads. Thanks to Remko Popma.
  • LOG4J2-175: Plugin cache should be reset when addPackages is called.
  • LOG4J2-159: Add Fragment-Host to MANIFEST.MF for log4j2-core. Thanks to Jan Winter.
  • LOG4J2-167: Configurator throws a ClassCastException if LogManager returns a SimpleLoggerContext.
  • LOG4J2-169: ConfigurationFactory was adding factories on every call.
  • LOG4J2-161: Modify ClassLoaderContextSelector to use the first ClassLoader in the child parent hierarchy that
    has a Context with a configuration to allow JSPs to use the WebApp's context and configuration.


  • LOG4J2-214: Async documentation update. Thanks to Remko Popma.
  • LOG4J2-208: Move async subproject into core. Thanks to Remko Popma.
  • LOG4J2-160: Move Throwable pattern converter options processing to ThrowableFormatOptions class. Thanks to Joanne Polsky.
  • LOG4J2-157: Allowed Loggers access to the properties in the LoggerConfig. Thanks to Remko Popma.
  • LOG4J2-153: Added ability to include or exclude location information. Thanks to Remko Popma.
  • LOG4J2-151: Allow Logger and LoggerContext to be subclassed. Thanks to Remko Popma.

Apache Log4j 2.0-beta5 requires a minimum of Java 6 to build and run. Basic compatibility with
Log4j 1.x is provided through the log4j-1.2-api component, however it does not implement some of the
very implementation specific classes and methods. The package names and Maven groupId have been changed to
org.apache.logging.log4j to avoid any conflicts with log4j 1.x.

For complete information on Apache Log4j 2, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Log4j 2 website: