2.6.2 (2016-07-05)

This is the twelfth GA release. It is primarily a bugfix release. More details on the fixes are itemized below.

Note that subsequent to the 2.6 release a minor source incompatibility was found due to the addition of new methods to the Logger interface. If you have code that does:

logger.error(null, “This is the log message”, throwable);

or similar with any log level you will get a compiler error saying the reference is ambiguous. To correct this either do:

logger.error(“This is the log message”, throwable);


logger.error((Marker) null, “This is the log message”, throwable);

Log4j 2.6.2 maintains binary compatibility with previous releases.

Log4j 2.6.2 requires a minimum of Java 7 to build and run. Log4j 2.3 was the last release that supported Java 6.

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 Log4j 2 website.



  • Add "direct" option to ConsoleAppender for increased performance. (for LOG4J2-1395 by Mikael Ståldal)

  • Unbox utility’s ringbuffer of StringBuilders is now configurable. (for LOG4J2-1412 by Remko Popma)

  • (GC) ParameterFormatter now avoids calling toString() on auto-boxed primitive message parameters. (for LOG4J2-1415 by Remko Popma)

  • (GC) ObjectMessage and ReusableObjectMessage now avoid calling toString() on auto-boxed primitive parameters. (for LOG4J2-1437 by Remko Popma)


  • Update Jackson from 2.7.4 to 2.7.5. (for LOG4J2-1432 by Gary Gregory)

  • Update Jansi from 1.11 to 1.13. (for LOG4J2-1433 by Gary Gregory)

  • Update Apache Commons Compress from 1.11 to 1.12. (for LOG4J2-1444 by Gary Gregory)


  • CronTriggeringPolicy was not properly setting the prevFileTime value for the PatternProcessor so file dates and times on rolled files were incorrect. (for LOG4J2-1250 by Ralph Goers)

  • Fixed minor issues with the 2.6.1 website. (for LOG4J2-1414 by Remko Popma, Ralph Goers)

  • Fixed issue where Unbox utility ignored the value Constants.ENABLE_THREADLOCALS and always stored non-JDK classes in ThreadLocals. (for LOG4J2-1417 by Remko Popma)

  • Provide MessageFactory2 to custom Logger implementations. (for LOG4J2-1418 by Mikael Ståldal)

  • RollingRandomAccessFileManager was not properly rolling over on startup and was getting a NullPointerException. (for LOG4J2-1420 by Ralph Goers)

  • Fixed issue where AsyncAppenderQueueFullPolicyTest sometimes hangs. (for LOG4J2-1422 by Remko Popma)

  • Ensure that the thread-local StringBuilders used by Layouts to format log events to text will not retain excessive memory after a large message was logged. (for LOG4J2-1434 by Remko Popma, Luke Butters)

  • Fix bug in OnStartupTriggeringPolicy that allowed it to roll over on every reconfiguration. Added minSize attribute. (for LOG4J2-1440 by Ralph Goers)

  • OnStartupTriggeringPolicyTest fails on Windows saying the file is used by another process. (for LOG4J2-1445 by Gary Gregory, Ludovic HOCHET)

  • Fixed issue where reusable messages broke flow tracing logic. (for LOG4J2-1452 by Remko Popma, Mikael Ståldal)

  • If copy and delete fails in rename action then resort to truncating the source file after copying it. (for LOG4J2-904 by Ralph Goers, Bernhard Mähr)