[ANNOUNCEMENT] Log4j2 2.13.1 released

Ralph Goers <[email protected]> Sun, 1 Mar 2020 13:01:08 -0700
Newsgroups gmane.comp.apache.logging,gmane.comp.apache.deltacloud.devel,gmane.comp.jakarta.log4j.user
Message-ID <[email protected]>
The Apache Log4j 2 team is pleased to announce the Log4j 2.13.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, lambda expressions for lazy logging, =
property substitution using Lookups, multiple patterns on a =
PatternLayout and asynchronous Loggers. Another notable Log4j 2 feature =
is the ability to be "garbage-free" (avoid allocating temporary objects) =
while logging. In addition, Log4j 2 will not lose events while =
reconfiguring.

The artifacts may be downloaded from =
https://logging.apache.org/log4j/2.x/download.html.

This release contains bugfixes and very minor enhancements.

Due to a break in compatibility in the SLF4J binding, Log4j now ships =
with two versions of the SLF4J to Log4j adapters. log4j-slf4j-impl =
should be used with SLF4J 1.7.x and earlier and log4j-slf4j18-impl =
should be used with SLF4J 1.8.x and later.

Note that the XML, JSON and YAML formats changed in the 2.11.0 release: =
they no longer have the "timeMillis" attribute and instead have an =
"Instant" element with "epochSecond" and "nanoOfSecond" attributes.

The Log4j 2.13.1 API, as well as many core components, maintains binary =
compatibility with previous releases.

GA Release 2.13.1

Changes in this version include:

New Features

	=E2=80=A2 LOG4J2-2748: Implement ISO8601_PERIOD_MICROS fixed =
date format matching ISO8601_PERIOD with support for microsecond =
precision.
Fixed Bugs

	=E2=80=A2 LOG4J2-2717: Slow initialization on Windows due to =
accessing network interfaces.
	=E2=80=A2 LOG4J2-2756: Prevent LoggerContext from being garbage =
collected while being created.
	=E2=80=A2 LOG4J2-2769: Do not log an error if Files.move does =
not work.
	=E2=80=A2 LOG4J2-2039: Rollover fails when file matches pattern =
but index is too large.
	=E2=80=A2 LOG4J2-2784: Counter stuck at 10 and overwriting files =
when leading zeros used in the file pattern count.
	=E2=80=A2 LOG4J2-2746: ClassLoaderContextSelector was not =
locating the LoggerContext during shutdown.
	=E2=80=A2 LOG4J2-2652: JSON output wrong when using additonal =
fields.
	=E2=80=A2 LOG4J2-2649: GraalVM does not allow use of =
MethodHandles.
	=E2=80=A2 LOG4J2-2211: Allow Lookup keys with leading dashes by =
using a slash as an escape character.
	=E2=80=A2 LOG4J2-2781: ServletContainerInitializer was obtaining =
the StatusLogger too soon. Thanks to qxo.
	=E2=80=A2 LOG4J2-2676: PluginProcessor should use Messager =
instead of System.out. Thanks to Gregg Donovan.
	=E2=80=A2 LOG4J2-2703: MapMessage.getFormattedMesssage() would =
incorrectly format objects. Thanks to Volkan Yazici.
	=E2=80=A2 LOG4J2-2760: Always write header on a new =
OutputStream. Thanks to Christoph Kaser.
	=E2=80=A2 LOG4J2-2776: An error message in RollingFileAppender =
uses a placeholder for the name but does not specify the name argument =
in the logging call Thanks to Christoph Kaser.
	=E2=80=A2 LOG4J2-2758: NullPointerException when using a custom =
DirectFileRolloverStrategy without a file name. Thanks to Christoph =
Kaser.
	=E2=80=A2 LOG4J2-2768: Add mulit-parameter overloads to =
LogBuilder. Thanks to Marius Volkhart.
	=E2=80=A2 LOG4J2-2770: Fixed NullPointerException after =
reconfiguring via JMX. Thanks to Bill Kuker.
	=E2=80=A2 LOG4J2-2759: RollingFileAppender was not rolling on =
startup if createOnDemand was set to true.
	=E2=80=A2 LOG4J2-2767: Warn if pattern is missing on Routes =
element. Use default route.
	=E2=80=A2 LOG4J2-2415: Fix lock contention in the classloader =
using new versions of slf4j without EventData on slf4j logger creation. =
Thanks to Andrey Turbanov.
	=E2=80=A2 LOG4J2-2677: Rollover handles parallel file deletion =
gracefully.
	=E2=80=A2 LOG4J2-2744: Remove unnecessary EventLogger references =
from log4j-slf4j18-impl due to removal from slf4j.
	=E2=80=A2 LOG4J2-2747: Fix a memory leak using fully =
asynchronous logging when the queue is full using the 'discard' =
asynchronous queue full strategy.
	=E2=80=A2 LOG4J2-2739: Fix erroneous log4j-jul recursive logger =
detection resulting in some no-op JUL loggers and 'WARN Recursive call =
to getLogger' being reported by the status logger.
	=E2=80=A2 LOG4J2-2735: PluginCache output is reproducible =
allowing the annotation processor to produce deterministic results. =
Thanks to Andy Wilkinson.
	=E2=80=A2 LOG4J2-2751: Fix StackLocator.getCallerClass =
performance in cases where Reflection.getCallerClass is not accessible.
	=E2=80=A2 LOG4J2-2752: MutableLogEvent and RingBufferLogEvent =
avoid StringBuffer and parameter array allocation unless reusable =
messages are used.
	=E2=80=A2 LOG4J2-2754: LoaderUtil.getClassLoaders may discover =
additional loaders and no longer erroneously returns a result with a =
null element in some environments.
	=E2=80=A2 LOG4J2-2575: CronExpression.getBeforeTime() would =
sometimes return incorrect result. Thanks to Nathan Friess.
	=E2=80=A2 LOG4J2-2762: [JDBC] MS-SQL Server JDBC driver throws =
SQLServerException when inserting a null value for a VARBINARY column.
	=E2=80=A2 LOG4J2-2770: NullPointerException after reconfiguring =
via JMX. Thanks to Bill Kuker.
Changes

	=E2=80=A2 LOG4J2-2789: Conditionally perform status logging =
calculations in PluginRegistry. Thanks to Marius Volkhart.
	=E2=80=A2 LOG4J2-2782: Use LinkedBlockingQueue instead of =
synchronized collction in StatusConfiguration.
	=E2=80=A2 LOG4J2-2777: Add a retry count attribute to the =
KafkaAppender. Thanks to joongs4.
	=E2=80=A2 LOG4J2-2745: Update log4j-slf4j18-impl slf4j version =
to 1.8.0-beta4 from 1.8.0-alpha2.
	=E2=80=A2 LOG4J2-2763: Update dependencies.
Apache Log4j 2.13.1 requires a minimum of Java 8 to build and run. Log4j =
2.3 was the last release that supported Java 6 and Log4j 2.11.2 is the =
last release to support Java 7.

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:

https://logging.apache.org/log4j/2.x/=