2.8.2 (2017-04-02)

This release primarily contains bugfixes and minor enhancements. More details on the new features and 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);

The Log4j 2.8.2 API, as well as many core components, maintains binary compatibility with previous releases.

Log4j 2.8.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 support for appending common suffix to each line of extended and root throwable stack trace. (for LOG4J2-1838 by Matt Sicker, Zilong Song)

  • Add support for appending common suffix to each line of throwable stack trace. (for LOG4J2-1843 by Matt Sicker, Zilong Song)

  • Add JSON encoding support to EncodingPatternConverter %encode{}. (for LOG4J2-1848 by Matt Sicker)

  • Add support for filtering input in TcpSocketServer and UdpSocketServer. (for LOG4J2-1863 by Matt Sicker)


  • Move integration tests to their own module to speed up build. (for LOG4J2-1827 by Ralph Goers)

  • Update Jackson from 2.8.6 to 2.8.7. (for LOG4J2-1856 by Gary Gregory)


  • Log4j 2.8 can lose exceptions when a security manager is present. (for LOG4J2-1820 by Gary Gregory, Jason Tedor)

  • NullPointerException in HtmlLayout. (for LOG4J2-1831 by Gary Gregory, Edward Serebrinskiy)

  • Fix documentation about the licensing for JeroMQ. (for LOG4J2-1835 by Matt Sicker)

  • Update the API version to 2.6.0. (for LOG4J2-1836 by Ralph Goers)

  • Fix typo in %replace converter documentation. (for LOG4J2-1840 by Matt Sicker, Pradeep Balasundaram)

  • Handle when LogEvent.getLoggerName() returns null in KafkaAppender. (for LOG4J2-1845 by Mikael Ståldal)

  • Handle when LogEvent.getLoggerName() returns null in LoggerNameLevelRewritePolicy. (for LOG4J2-1846 by Mikael Ståldal)

  • Fixed daylight savings time (DST) issue with FixedDateFormat. (for LOG4J2-1849 by Remko Popma)

  • Fix CassandraRule and unit tests on Windows. (for LOG4J2-1850 by Matt Sicker, Ludovic Hochet)

  • The default value of RandomAccessFileAppender.Builder append field is wrong. (for LOG4J2-1853 by Gary Gregory, wangyuntao)

  • Fix JavaDoc on org.apache.logging.log4j.ThreadContext about inheritance. (for LOG4J2-1861 by Matt Sicker)

  • Fix JavaDoc about @Order and OrderComparator ordering. (for LOG4J2-1862 by Matt Sicker, wangyuntao)