
              Apache Log4j 2.5 RELEASE NOTES

The Apache Log4j 2 team is pleased to announce the Log4j 2.5 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, multiple patterns on
a PatternLayout and asynchronous Loggers. In addition, Log4j 2 will not lose events while reconfiguring.

This is the ninth GA release. It contains several bugfixes and new features. The new features include
the ability to specify delete actions during file rollover, a CRON-based triggering policy for file rollover,
Support for JSR 223 scripts in filters, pattern selectors and delete actions, and a policy for removing
idle appenders from the RoutingAppender. More details on the features and bugfixes are itemized below.

Log4j 2 requires a minimum of Java 7.

GA Release 2.5

Changes in this version include:

New features:
o LOG4J2-435:  Added support for custom delete actions triggered by a rollover. Thanks to Robert Schaft. 
o LOG4J2-89:  Allow rollover to occur at any time. Add CronTriggeringPolicy. 
o LOG4J2-1136:  Add support for JSR 223 scripts in filters and the PatternSelector. 
o LOG4J2-1168:  Add getters for source and destination file in file rename action. Thanks to Steven Swor. 
o LOG4J2-1175:  Add getters for classes in org.apache.logging.log4j.core.appender.rolling.action. 
o LOG4J2-898:  Added system property to allow users to control whether messages should be formatted in the background. 
o LOG4J2-1178:  Support use-case for JDBC's CommonDataSource.setLogWriter(PrintWriter) and java.sql.DriverManager.setLogWriter(PrintWriter). 
o LOG4J2-1187:  Support use case for java.sql.DriverManager.setLogStream(PrintStream). 

Fixed Bugs:
o LOG4J2-324:  Reduced memory usage of status messages in bounded queue; support zero-length queue that stores no messages. 
o LOG4J2-1173:  Fixed rollover error when copying to a directory mapped to a remote Linux host. 
o LOG4J2-1195:  Make KafkaAppender support SerializedLayout. Thanks to Melvin Du. 
o LOG4J2-381:  Allow triggering policy and rollover strategy to be modified during reconfiguration. Thanks to Anthony Baldocchi. 
o LOG4J2-1029:  Performance improvement when gathering location information. Thanks to Stefan Leonhartsberger. 
o LOG4J2-1172:  Fixed ThreadLocal leak [AsyncLogger$Info] on Tomcat when using AsyncLoggerContextSelector. 
o LOG4J2-1176:  Fixed memory leak when log4j jars are in Tomcat's lib folder. 
o LOG4J2-1180:  Logger cache does not account for message factory. Thanks to Mikael Ståldal. 
o LOG4J2-879:  Documentation: fixed minor issues with the site and manual pages. 
o LOG4J2-999:  RollingFileAppender should also roll over when log event time is equal to rollover time, not only when later. Thanks to Joan Balagueró. 
o LOG4J2-873:  Fixed bug where omitting the <display-name> element in web.xml caused incorrect log4j initialization,
        resulting in memory leaks when the web application was stopped or reloaded. Thanks to Martin Dickins, LC, Luke Woodward. 
o LOG4J2-323:  Better web app support for async loggers: Fixed a memory leak that occurred when the logging jars are placed
        in the container's classpath and the configuration file uses AsyncRoot/AsyncLogger.
        The problem was that the first web application started the Disruptor background thread [AsyncLoggerConfig-1] but did not stop it until all web apps are stopped.
        Each web application now has its own Disruptor which is stopped/started together with the web app. 
o LOG4J2-493:  Better web app support for async loggers: it is now possible to place the logging jars in the container's
        classpath when making all loggers asynchronous by using AsyncLoggerContextSelector. This fixes a problem where
        logging would stop working after stopping and restarting a web application. 
o LOG4J2-1171:  Use servlet context name for logger context name when available. 
o LOG4J2-1159:  Fixed a ThreadLocal memory leak in Tomcat8 that mentions AsyncLoggers when Async Loggers are not used. 
o LOG4J2-1166:  AbstractConfiguration executor should use a DaemonThreadFactory. 
o LOG4J2-1165:  Improve Log4j initialization status messages. 
o LOG4J2-1156:  Web site corrections and updates. 
o LOG4J2-1158:  Log4J JUL adapter is using MessageFormat on String passed by java.util.function.Supplier<String>. Thanks to Michael Fortin, Gary Gregory. 
o LOG4J2-801:  org.apache.logging.log4j.core.Logger should be serializable. 
o LOG4J2-1157:  Fix compilation error for classes annotated with @Plugin. Thanks to Norbert Bartels. 
o LOG4J2-948:  Fix plugin documentation error about Converters. Thanks to Andrew Flower. 
o LOG4J2-1193:  Prefix all thread names Log4j creates with "Log4j2-". 
o LOG4J2-1194:  Documentation does not match parameters for LoggerNameLevelRewritePolicy. Thanks to Adam Brin. 
o LOG4J2-1196:  MongoDbConnection does not close MongoClient. Thanks to René Zanner. 

Changes:
o LOG4J2-649:  Add PurgePolicy and IdlePurgePolicy to RoutingAppender. Thanks to Aleksey Zvolinsky. 
o LOG4J2-1202:  Remove ConfigurationMonitor. The WatchManager is now used to check for configuration changes. 
o LOG4J2-1174:  Update Jackson from 2.6.2 to 2.6.3. 
o LOG4J2-1207:  Update kafka-clients from 0.8.2.2 to 0.9.0.0. 


Apache Log4j 2.5 requires a minimum of Java 7 to build and run. Log4j 2.3 was the last release that
supported Java 6.

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/