The Apache Log4j 2 team is pleased to announce the Log4j 2.0 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 of the improvements available in Logback while fixing some inherent problems in Logback's architecture. This is the first GA release, after thirteen prior releases over the last 4 years. GA Release Changes in this version include: New features: o LOG4J2-519: Added support for generating custom logger wrappers that replace the existing log levels and extended logger wrappers that add custom log levels to the existing ones. o LOG4J2-696: RegexFilter does not match multiline log messages. Fixed Bugs: o LOG4J2-705: Fixed issue where Async Logger does not log thread context stack data. API change: added method getImmutableStackOrNull() to ThreadContext.ContextStack interface. o LOG4J2-631: Update docs to clarify how to use formatter logger and standard logger together. o LOG4J2-441: LoggerConfigs with no Level now inherit the Level from their parent. o LOG4J2-703: Android: Could not find class 'javax.naming.InitialContext', referenced from method org.apache.logging.log4j.core.lookup.JndiLookup.lookup. Thanks to Nelson Melina. o LOG4J2-699: PatternLayout manual page missing documentation on header/footer. o LOG4J2-625: Fixed Serialization error with SocketAppender and Async Loggers. (Fixed in RC2, but wasn't included in release notes.) o LOG4J2-538: JMX GUI: fixed occasional ArrayIndexOutOfBoundsException after pressing "reconfigure with XML below". (Fixed in RC2, but wasn't included in release notes.) o LOG4J2-666: AsyncLoggerContextSelector should ensure that different AsyncLoggerContext objects created by web app classloaders have unique names. o LOG4J2-683: Fix annotation processor warnings on JDK 1.7+. Thanks to Jurriaan Mous. o LOG4J2-694: Fix strange compilation error that popped up in a test class. o LOG4J2-692: Update documentation to specify only Maven 3 is supported. o LOG4J2-690: Log4j Web test dependencies should be in scope "test" in the pom. Thanks to Philip Helger. o LOG4J2-682: Special characters (tab and so on) in PatternLayout do not work. Thanks to Scott Harrington. o LOG4J2-686: Core's OptionConverter support for \b is broken (affects PatternLayout). o LOG4J2-687: Rename org.apache.logging.log4j.core.util.Closer.closeSilent() to closeSilently(). o LOG4J2-688: Make org.apache.logging.log4j.core.layout.PatternLayout immutable. o LOG4J2-707: Some exceptions are not logged when configuration problems are detected. Changes: o LOG4J2-685: Make org.apache.logging.log4j.core.layout.AbstractLayout immutable. o LOG4J2-689: Update Jackson to 2.4.1. o LOG4J2-709: Update Apache Commons Logging to 1.2 from 1.1.3. Apache Log4j 2.0 requires a minimum of Java 6 to build and run. 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/