2.13.2

Release date

2020-04-23

This release contains bugfixes and minor enhancements.

Due to a break in compatibility in the SLF4J binding, Log4j now ships with two versions of the SLF4J to Log4j adapters. log4j-slf4j-impl should be used with SLF4J 1.7.x and earlier and log4j-slf4j18-impl should be used with SLF4J 1.8.x and later.

Note that the XML, JSON and YAML formats changed in the 2.11.0 release: they no longer have the timeMillis attribute and instead have an Instant element with epochSecond and nanoOfSecond attributes.

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

Log4j 2.13.2 requires a minimum of Java 8 to build and run. Log4j 2.3 was the last release that supported Java 6 and Log4j 2.11.2 is the last release to support Java 7.

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.

Added

  • Provide a Log4j implementation of System.Logger. (LOG4J2-1360)

  • Added EventLookup to retrieve fields from the log event. (LOG4J2-2807)

Changed

  • Allow the file extension in the file pattern to be modified during reconfiguration. (LOG4J2-2457)

  • Allow servlet context path to be retrieved without "/". (LOG4J2-2520)

  • Add ContextDataProviders as an alternative to having to implement a ContextDataInjector. (LOG4J2-2779)

  • [JDBC] Throw a AppenderLoggingException instead of an NPE in the JDBC database manager. (LOG4J2-2812)

  • Allow Spring Boot applications to use composite configurations. (LOG4J2-2815)

  • Allow Spring Lookup to return default and active profiles. (LOG4J2-2818)

  • Add support for specifying an SSL configuration for SmtpAppender. (LOG4J2-2819)

Fixed

  • Add option to restore printing timeMillis in the JsonLayout. (LOG4J2-2588)

  • Fix Exceptions when whitespace is in the file path and Java security manager is used. (LOG4J2-2761)

  • Initialize pattern processor before triggering policy during reconfiguration. (LOG4J2-2766)

  • Conditionally allocate PluginEntry during PluginCache loading. (LOG4J2-2790)

  • Correct JsonLayout timestamp sorting issue. (LOG4J2-2791)

  • Allow trailing and leading spaces in log level. (LOG4J2-2793)

  • Make YamlLayoutTest more resilient to environmental differences. (LOG4J2-2794)

  • TimeFilter did not handle daylight saving time transitions and did not support a range over 2 days. (LOG4J2-2805)

  • Avoid NullPointerException when StackWalker returns null. (LOG4J2-2809)

  • Add information about using a url in log4j.configurationFile. (LOG4J2-2810)

  • Add missing includeLocation parameter when creating AsyncLogger. (LOG4J2-2811)

  • serializeToBytes was checking wrong variable for null. (LOG4J2-2813)

  • Fix Javadoc for ScriptPatternSelector. (LOG4J2-2814)

  • Allow the file size action to parse the value without being sensitive to the current locale. (LOG4J2-2817)

  • Implement requiresLocation in GelfLayout to reflect whether location information is used in the message Pattern. (LOG4J2-2824)