The Apache Log4j 2 team is pleased to announce the Log4j 2.1 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 fourth GA release which contains several bugfixes and new features. 
There are two
new Maven artifacts in this release: log4j-jul and log4j-iostreams. Both 
components are API-based
with optional Core features.

GA Release 2.1

Changes in this version include:

New features:
o LOG4J2-868:  Add ShutdownCallbackRegistry interface for customizable shutdown 
callback handling. This is particularly
       useful for application servers that wish to integrate with Log4j 2. 
o LOG4J2-589:  Supported filtering on custom log levels in configuration. 
o LOG4J2-856:  Documentation: add sections on the JUL Adapter, IO Streams and 
NoSQL Appenders to the Maven and Ivy page. 
o LOG4J2-848:  Add a Java lookup to provide nicely formatted runtime version 
information. 
o LOG4J2-809:  Move reflection utility class to API's private utility classes. 
o LOG4J2-833:  Documentation: added Runtime Dependencies link to left nav-bar 
on site. 
o LOG4J2-816:  Documentation: added section on XInclude to user manual 
Configuration page. 
o LOG4J2-547:  Add the Log4j IOStreams component. 
o LOG4J2-431:  Added Memory-Mapped File Appender. Thanks to Claude Mamo. 
o LOG4J2-827:  Support use of TypeConverter classes through the standard Plugin 
system. 
o LOG4J2-825:  Add simple validation constraint annotations for the Plugin 
system. 
o LOG4J2-428:  Implement a GELF layout. Thanks to Mark Paluch. 
o LOG4J2-608:  Add java.util.logging implementation based on log4j-api. See 
log4j-jul documentation for more details. 
o LOG4J2-793:  Add support for custom SLF4J Markers in log4j-slf4j-impl module. 
o LOG4J2-771:  Add lookup for application main arguments. 
o LOG4J2-787:  Add lookup for JVM arguments. 

Fixed Bugs:
o LOG4J2-676:  Some typo fixes and enhancements for the site. Thanks to Stefan 
Bodewig. 
o LOG4J2-866:  Documentation: fixed missing closing parenthesis in code 
example. Thanks to Gerard Weatherby. 
o LOG4J2-862:  Fixed classloader issue that prevented Log4j from finding the 
implementation when used in a custom Ant task. Thanks to Michael Sutherland. 
o LOG4J2-861:  Documentation: fix broken links on left navigation Extending 
Log4j Configuration sub-menu. 
o LOG4J2-797:  Documentation: clarified why log4j-core is a compile time 
dependency in Maven and Ivy page. Thanks to Andreas Rytina. 
o LOG4J2-855:  Documentation: fix broken links on Appenders manual page. 
o LOG4J2-807:  Prevent NPE when configuration with AsyncLogger/AsyncRoot is 
reloaded. 
o LOG4J2-678:  Documentation: fixed minor issues with Log4j2 web 
site/documentation. Thanks to Matt Sicker. 
o LOG4J2-843:  Migrate JpaHyperSqlAppenderTest JUnit performance test to 
log4j-perf. 
o LOG4J2-842:  Migrate JpaH2AppenderTest JUnit performance test to log4j-perf. 
o LOG4J2-841:  Migrate JdbcHyperSqlAppenderTest JUnit performance test to 
log4j-perf. 
o LOG4J2-840:  Migrate JdbcH2AppenderTest JUnit performance test to log4j-perf. 
o LOG4J2-830:  Respect external interrupt signal to allow application shutdown 
after joining AsyncAppender thread. 
o LOG4J2-813:  MarkerManager Log4jMarker.hasParents() returns opposite of 
correct result. Thanks to David Erichsen, Brandon Barry. 
o LOG4J2-785:  Documentation: fixed capitalization inconsistency in user manual 
example config. 
o LOG4J2-829:  Fixed issue in RollingFile filePattern: backslashes are path 
separators, not escape characters. 
o LOG4J2-832:  ThrowableProxy fails if a class in logged stack trace throws 
java.lang.Error from initializer Thanks to Seth Leger. 
o LOG4J2-745:  Avoid ConverterKey plugin clashes by using a more predictable 
plugin loading infrastructure.
       Plugins have been segmented into three parts: class path, user-specified 
packages, and OSGi bundles. Thanks to Scott Harrington. 
o LOG4J2-798:  Fixed plugin scanning redundancy causing massive slowdowns in 
certain environments. Thanks to Scott Harrington. 
o LOG4J2-753:  Reduced CachedClock thread contention. 
o LOG4J2-819:  Fixed memory leak in Tomcat 6 caused by clock background threads 
unintentionally
       started by Tomcat after web application stop. Thanks to Gary Gregory. 
o LOG4J2-391:  FlumePersistentManager now handles LockConflictExceptions in 
Berkeley Db when sending a batch. Thanks to Kamal Bahadur. 
o LOG4J2-782:  Remove invalid Oracle Maven repository. 
o LOG4J2-796:  Fixed issue where log4j-to-slf4j did not work correctly with 
SLF4J Simple Logger. 
o LOG4J2-811:  SimpleLogger throws ArrayIndexOutOfBoundsException for an empty 
array. Thanks to Yogesh Rao. 
o LOG4J2-663:  Fix OSGi Import-Package problem with the JMS API. Thanks to 
Florian Brunner. 
o LOG4J2-783:  PatternLayout should use platform character encoding by default, 
not UTF-8. Thanks to Minglei Lee. 

Changes:
o LOG4J2-845:  Add 2.1.0 to compatible versions in Log4j API ProviderUtil and 
update Log4jAPIVersion to 2.1.0 in
       core META-INF/log4j-provider.properties. 
o LOG4J2-844:  Update JMH to 1.1 from 0.7.2. 
o LOG4J2-831:  Documentation: updated FAQ "which jars" diagrams for JUL bridge 
and 2.1 version. 
o LOG4J2-780:  Update Spring Framework to 3.2.11.RELEASE from 3.2.8.RELEASE. 
o LOG4J2-815:  Unify the two JMS appenders into a single appender. 
Configurations written for 2.0 will still work in 2.1+. 
o LOG4J2-790:  Update Jackson to 2.4.2 from 2.4.1 (for XML and JSON 
processing). 
o LOG4J2-766:  Incomplete documentation for JSONLayout. Thanks to Bruno P. 
Kinoshita. 
o LOG4J2-800:  All life cycle implementations should be serializable.
       This is still work in progress. 
o LOG4J2-801:  org.apache.logging.log4j.core.Logger should be serializable.
       This is still work in progress. 
o LOG4J2-810:  Update javax.mail to 1.5.2 from 1.5.0. 
o LOG4J2-822:  Update org.eclipse.persistence.jpa to 2.5.2 from 2.5.1. 
o LOG4J2-867:  FlumeAppender: maxDelay not in seconds, but milliseconds.
       Add time scale to some settings, for example maxDelayMillis instead of 
maxDelay.
       The old names are aliased for compatibility. 


Apache Log4j 2.1 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/ <http://logging.apache.org/log4j/2.x/>

Reply via email to