The Apache Log4j 2 team is pleased to announce the Log4j 2.2 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 other modern features such as support for Markers, property substitution using Lookups, and asynchronous Loggers. In addition, Log4j 2 will not lose events while reconfiguring. This is the fifth GA release. It contains several bugfixes and new features. GA Release 2.2 Changes in this version include: New features: o LOG4J2-941: Allow JSON layout to create one compact log record per line. Thanks to Konstantinos Liakos. o LOG4J2-933: HTML layout should not use attribute minimalization for hr noshade. Thanks to ppiman at gmail.com <http://gmail.com/>. o LOG4J2-895: Specify the SyslogAppender connect timeout value as part of the configuration. The SyslogAppender takes a new parameter connectTimeoutMillis. o LOG4J2-899: Specify the SocketAppender connect timeout value as part of the configuration. The SyslogAppender takes a new parameter connectTimeoutMillis. Fixed Bugs: o LOG4J2-938: (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. Thanks to Mauro Molinari. o LOG4J2-957: Missing toUpperCase("Locale.ENGLISH"). Thanks to fatih guleryuz. o LOG4J2-956: Manual refers to Route "AppenderRef" attribute, should be "ref". Thanks to David Kellerman. o LOG4J2-944: Log4j Flume appender is not adding millisecond to the event headers when the event is logged at 000 milliseconds. Thanks to Vinayaka Ramachandra. o LOG4J2-924: Log4j 1.2 Bridge doesn't map level ALL correctly in Category.getEffectiveLevel(). Thanks to Ryan Rupp. o LOG4J2-931: ConsoleAppender is missing @PluginFactory annotation at createAppender method. Thanks to Robert Gacki. o LOG4J2-919: Logging system fails to initialize if XInclude API is not available. Thanks to David Johle. o LOG4J2-914: ThrowableProxy.getExtendedStackTraceAsString causes NullpointerException. Thanks to Kaj Bjurman. o LOG4J2-912: XML configuration does not report full error message for XInclude parser configuration problems. o LOG4J2-903: ClassLoaderContextSelector uses ClassLoader.toString() as a key Thanks to Mauro Molinari. o LOG4J2-834: ThrowableProxy throws NoClassDefFoundError. Thanks to Nikita Koval, Leonard Broman, Thiago Kronig. o LOG4J2-893: NullPointerException on filter when mapping JUL to Log4j2. o LOG4J2-892: JUL adapter does not map Log4j'2 FATAL level to a JUL level. o LOG4J2-881: AbstractLifecycle should not implement equals() and hashCode(). Thanks to Mariano Gonzalez. o LOG4J2-897: Javadoc for org.apache.log4j.BasicConfigurator.configure() is incorrect. o LOG4J2-891: AbstractLifecycle should not implement equals() and hashCode(). o LOG4J2-946: [docs] Using Log4j 2 in Web Applications: Update example (Log4jWebLifeCycle is not visible). Thanks to artemonster. Changes: o LOG4J2-955: Documentation: clarify system properties to control status logger, improve troubleshooting FAQ entry. o LOG4J2-950: Incorrect attribute name in PropertiesRewritePolicy example. Thanks to Joel Edwards. o LOG4J2-901: Update docs for SyslogAppender: "No structured id name was supplied" Thanks to Tihomir Meščić, Siegfried Greisinger. o LOG4J2-958: Update from Jackson 2.5.0 to 2.5.1. o LOG4J2-925: Update from Jackson 2.4.4 to 2.5.0. o LOG4J2-910: Update Jackson from 2.4.3 to 2.4.4. o LOG4J2-881: Update Jackson from 2.4.2 to 2.4.3. o LOG4J2-882: Update maven-core from 3.1.0 to 3.2.3. o LOG4J2-883: Update tests from org.apache.felix.framework 4.2.1 to 4.4.1. o LOG4J2-884: Update org.eclipse.osgi from 3.6.0 to 3.7.1. o LOG4J2-900: Update Apache Flume from 1.5.0.1 to 1.5.2. 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 Apache Log4j 2 website: http://logging.apache.org/log4j/2.x/ <http://logging.apache.org/log4j/2.x/>