2.2

Release date

2015-02-22

This is the fifth GA release. It contains several bugfixes and new features.

Apache Log4j 2.2 requires a minimum of Java 6 to build and run. Future releases may require a minimum of Java 7.

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.

Added

  • Specify the SyslogAppender connect timeout value as part of the configuration. The SyslogAppender takes a new parameter connectTimeoutMillis. (LOG4J2-895)

  • Specify the SocketAppender connect timeout value as part of the configuration. The SyslogAppender takes a new parameter connectTimeoutMillis. (LOG4J2-899)

  • HTML layout should not use attribute minimalization for hr noshade. (LOG4J2-933)

  • Allow JSON layout to create one compact log record per line. (LOG4J2-941)

Changed

  • Update Jackson from 2.4.2 to 2.4.3. (LOG4J2-881)

  • Update maven-core from 3.1.0 to 3.2.3. (LOG4J2-882)

  • Update tests from org.apache.felix.framework 4.2.1 to 4.4.1. (LOG4J2-883)

  • Update org.eclipse.osgi from 3.6.0 to 3.7.1. (LOG4J2-884)

  • Update Apache Flume from 1.5.0.1 to 1.5.2. (LOG4J2-900)

  • Update docs for SyslogAppender: "No structured id name was supplied" (LOG4J2-901)

  • Update Jackson from 2.4.3 to 2.4.4. (LOG4J2-910)

  • Update from Jackson 2.4.4 to 2.5.0. (LOG4J2-925)

  • Incorrect attribute name in PropertiesRewritePolicy example. (LOG4J2-950)

  • Documentation: clarify system properties to control status logger, improve troubleshooting FAQ entry. (LOG4J2-955)

  • Update from Jackson 2.5.0 to 2.5.1. (LOG4J2-958)

Fixed

  • ThrowableProxy throws NoClassDefFoundError. (LOG4J2-834)

  • AbstractLifecycle should not implement equals() and hashCode(). (LOG4J2-881)

  • AbstractLifecycle should not implement equals() and hashCode(). (LOG4J2-891)

  • JUL adapter does not map Log4j'2 FATAL level to a JUL level. (LOG4J2-892)

  • NullPointerException on filter when mapping JUL to Log4j2. (LOG4J2-893)

  • Javadoc for org.apache.log4j.BasicConfigurator.configure() is incorrect. (LOG4J2-897)

  • ClassLoaderContextSelector uses ClassLoader.toString() as a key (LOG4J2-903)

  • XML configuration does not report full error message for XInclude parser configuration problems. (LOG4J2-912)

  • ThrowableProxy.getExtendedStackTraceAsString causes NullPointerException. (LOG4J2-914)

  • Logging system fails to initialize if XInclude API is not available. (LOG4J2-919)

  • Log4j 1.2 Bridge doesn’t map level ALL correctly in Category.getEffectiveLevel(). (LOG4J2-924)

  • ConsoleAppender is missing @PluginFactory annotation at createAppender method. (LOG4J2-931)

  • (JMX) To avoid memory leaks when web applications are restarted, JMX notifications are sent from the caller thread in web applications. For non-web applications notifications are sent from a background thread as before. (LOG4J2-938)

  • Log4j Flume appender is not adding millisecond to the event headers when the event is logged at 000 milliseconds. (LOG4J2-944)

  • [docs] Using Log4j 2 in Web Applications: Update example (Log4jWebLifeCycle is not visible). (LOG4J2-946)

  • Manual refers to Route "AppenderRef" attribute, should be "ref". (LOG4J2-956)

  • Missing toUpperCase(Locale.ENGLISH). (LOG4J2-957)