| |
| 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/ |