The Apache Log4j 2 team is pleased to announce the Log4j 2.0-beta8 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 tenth release of Log4j 2 and is being made available to encourage use and feedback from the community.

Fixed Bugs

  • LOG4J2-302: Added toString methods to ThreadContextStack/Map implementation classes.
  • LOG4J2-300: WriterThread was ending when no agents are available which caused an OutOfMemoryError.
  • LOG4J2-278: Filter calls from Avro or Flume to be ignored by the FlumeAppender.
  • LOG4J2-279: FlumePersistentManager now calls Berkeley DB from threads to avoid encountering interrupts in the application.
  • LOG4J2-296: Wasted work in FlumePersistentManager.createManager.
  • LOG4J2-297: Wasted work in TestConfigurator.testEnvironment.
  • LOG4J2-298: Wasted work in StyleConverterTest.setupClass.
  • LOG4J2-280: AsyncLogger threads are now daemon threads and won't prevent the JVM from shutting down anymore.
  • LOG4J2-295: Fast(Rolling)FileAppender now correctly handles messages exceeding the buffer size.
  • OG4J2-271: FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
  • LOG4J2-267: FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
  • LOG4J2-292: Fast(Rolling)FileAppender now correctly appends to (does not overwrite) existing file.
  • LOG4J2-289: Upgrade javadoc plugin to 2.9.1 to fix javadoc security issue.
  • LOG4J2-139: Fix NullPointerException (regression due to fix for LOG4J2-228)
  • LOG4J2-275: FlumeAvroManager fails to notify client of failing event if Flume RPCClient cannot be created.


  • LOG4J2-270: Improved logging initialization in Servlet containers, especially Servlet 3.0 and newer where Log4j now
    initializes and deinitializes automatically with no deployment descriptor configuration.
  • LOG4J2-301: Add printf methods to Logger API.
  • LOG4J2-282: Allow the default status level to be specified as a system property.
  • LOG4J2-294: LogManager.getLogger can now be called without a logger name or with a null logger name.
  • LOG4J2-288: Update JUnit to 4.11 from 4.7.
  • LOG4J2-286: Update test H2 JDBC driver to 1.172 from 1.171.
  • LOG4J2-285: Update Jansi jar to 1.11 from 1.9.
  • LOG4J2-284: Update Log4j 1 dependency to 1.2.17 from 1.2.16.
  • LOG4J2-283: Remove dependency on Apache ORO jar.
  • LOG4J2-277: Wasted work in RollingAppenderSizeTest.testAppender() and others.
  • LOG4J2-168: Include arbitrary message fields in RFC-5424 structured data. Thanks to Scott Severtson.
  • LOG4J2-274: Wasted work in UUIDUtil initialization.
  • LOG4J2-273: Wasted work in XMLLayout.toSerializable().

Apache Log4j 2.0-beta8 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: