
              Apache Log4j 2.6.1 RELEASE NOTES

The Apache Log4j 2 team is pleased to announce the Log4j 2.6.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 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 eleventh GA release. It is primarily a bugfix release. More details on the fixes are itemized below.

Note that subsequent to the 2.6 release a minor source incompatibility was found due to the addition of new methods to
the Logger interface. If you have code that does:

logger.error(null, “This is the log message”, throwable);

or similar with any log level you will get a compiler error saying the reference is ambiguous.  To correct this either do:

logger.error(“This is the log message”, throwable);

or

logger.error((Marker) null, “This is the log message”, throwable);

Log4j 2.6 maintains binary compatibility with previous releases.

GA Release 2.6.1

Changes in this version include:

New features:
o LOG4J2-1411:  Add documentation about plugin builders compared to factories. 

Fixed Bugs:
o LOG4J2-1405:  OnStartupTriggeringPolicy was forcing a rollover of empty files at startup and would append a
        second footer that was added by the prior shutdown. 
o LOG4J2-1406:  Fixed bug in ReusableParameterizedMessage where Throwable was never updated so first error was logged over
        and over again and subsequent errors were not logged. Thanks to Trask Stalnaker. 
o LOG4J2-1409:  Fixed ArrayIndexOutOfBoundsException that may occur in ReusableParameterizedMessage. Thanks to Shahan. 
o LOG4J2-997:  Add filter and remove filter were not working properly in AbstractFilterable. Thanks to Maytee Chinavanichkit. 
o LOG4J2-1032:  Change RenameAction to use java.nio to better report rename failures. 
o LOG4J2-1407:  Misleading WARN log events from Log4j about message factories and unexpected formatting. Thanks to Gary Gregory. 
o LOG4J2-1408:  The module log4j-liquibase is missing from BOM POM. Thanks to Gary Gregory. 
o LOG4J2-1180:  Logger cache does not account for message factory. Thanks to Gary Gregory. 
o LOG4J2-1402:  Fix regression in properties configuration to support arbitrary component ids. 

Changes:
o LOG4J2-1385:  (GC) CSV layouts should not create a new CSVPrinter for each log event. Requires Apache Commons CSV 1.4. 
o LOG4J2-1398:  Update liquibase-core from 3.4.2 to 3.5.1. 
o LOG4J2-1399:  Update Apache Commons CSV from 1.3 to 1.4. 


Apache Log4j 2.6.1 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/