[ANNOUNCE] Apache Log4j 2.18.0 released

Ralph Goers <[email protected]> Sat, 2 Jul 2022 20:57:52 -0700
Newsgroups gmane.comp.jakarta.tomcat.user,gmane.comp.apache.ode.devel,gmane.comp.apache.logging
Message-ID <3F388BE5-5267-4B22-85EE-08510AA421E5__33907.7524071158$1656820685$gmane$org@dslextreme.com>
The Apache Log4j 2 team is pleased to announce the Log4j 2.18.0 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 primarily contains bug fixes and 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. SLF4J-2.0.0 alpha releases =
are not fully supported. See =
https://issues.apache.org/jira/browse/LOG4J2-2975 and =
https://jira.qos.ch/browse/SLF4J-511.

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

GA Release 2.18.0

Changes in this version include:

New Features

	=E2=80=A2 LOG4J2-3495: Add MutableThreadContextMapFilter.
	=E2=80=A2 LOG4J2-3472: Add support for custom LMAX disruptor =
WaitStrategy configuration.
	=E2=80=A2 LOG4J2-3419: Add support for custom Log4j 1.x levels.
	=E2=80=A2 LOG4J2-3440: Add support for adding and retrieving =
appenders in Log4j 1.x bridge.
	=E2=80=A2 LOG4J2-3362: Add support for Jakarta Mail API in the =
SMTP appender.
	=E2=80=A2 LOG4J2-3483: Add support for Apache Extras' =
RollingFileAppender in Log4j 1.x bridge.
	=E2=80=A2 LOG4J2-3538: Add support for 24 colors in highlighting =
Thanks to Pavel_K.
Fixed Bugs

	=E2=80=A2 LOG4J2-3339: DirectWriteRolloverStrategy should use =
the current time when creating files.
	=E2=80=A2 LOG4J2-3534: Fix LevelRangeFilterBuilder to align with =
log4j1's behavior.
	=E2=80=A2 LOG4J2-3527: Don't use Paths.get() to avoid circular =
file systems.
	=E2=80=A2 LOG4J2-3490: The DirectWriteRolloverStrategy was not =
detecting the correct index to use during startup.
	=E2=80=A2 LOG4J2-3432: SizeBasedTriggeringPolicy would fail to =
rename files properly when integer pattern contained a leading zero.
	=E2=80=A2 LOG4J2-3491: Async Loggers were including the location =
information by default. Thanks to Avihai Marchiano.
	=E2=80=A2 LOG4J2-1376: Allow enterprise id to be an OID =
fragment.
	=E2=80=A2 LOG4J2-3493: ClassArbiter's newBuilder method =
referenced the wrong class. Thanks to Dmytro Voloshyn.
	=E2=80=A2 LOG4J2-3481: HttpWatcher did not pass credentials when =
polling.
	=E2=80=A2 LOG4J2-3482: UrlConnectionFactory.createConnection now =
accepts an AuthorizationProvider as a parameter.
	=E2=80=A2 LOG4J2-3477: Add the missing context stack to =
JsonLayout template. Thanks to filipc.
	=E2=80=A2 LOG4J2-3393: Improve JsonTemplateLayout performance.
	=E2=80=A2 LOG4J2-3424: Properties defined in configuration using =
a value attribute (as opposed to element) are read correctly.
	=E2=80=A2 LOG4J2-3413: Fix resolution of non-Log4j properties.
	=E2=80=A2 LOG4J2-3423: JAR file containing Log4j configuration =
isn't closed. Thanks to Radim Tlusty.
	=E2=80=A2 LOG4J2-3425: Syslog appender lacks the SocketOptions =
setting. Thanks to Ji=C5=99=C3=AD Smol=C3=ADk.
	=E2=80=A2 : Improve validation and reporting of configuration =
errors.
	=E2=80=A2 : Log4j 1.2 bridge should generate Log4j 2.x messages =
based on the parameter runtime type.
	=E2=80=A2 LOG4J2-3426: Log4j 1.2 bridge should not wrap =
components unnecessarily. Thanks to Pooja Pandey.
	=E2=80=A2 LOG4J2-3418: Fixes Spring Boot logging system =
registration in a multi-application environment.
	=E2=80=A2 LOG4J2-3040: Avoid ClassCastException in JeroMqManager =
with custom LoggerContextFactory #791. Thanks to LF-Lin.
	=E2=80=A2 : Fix minor typo #792. Thanks to LF-Lin.
	=E2=80=A2 LOG4J2-3439: Fixes default SslConfiguration, when a =
custom keystore is used. Thanks to Jayesh Netravali.
	=E2=80=A2 LOG4J2-3447: Fixes appender concurrency problems in =
Log4j 1.x bridge. Thanks to Pooja Pandey.
	=E2=80=A2 LOG4J2-3452: Fix and test for race condition in =
FileUtils.mkdir(). Thanks to Stefan Vodita.
	=E2=80=A2 LOG4J2-3458: LocalizedMessage logs misleading errors =
on the console.
	=E2=80=A2 LOG4J2-3359: Fixes the syslog appender in Log4j 1.x =
bridge, when used with a custom layout. Thanks to Tukesh.
	=E2=80=A2 LOG4J2-3359: log4j-1.2-api 2.17.2 throws =
NullPointerException while removing appender with name as null. Thanks =
to Rajesh.
	=E2=80=A2 LOG4J2-2872: Fix problem with non-uppercase custom =
levels. Thanks to Alla Gofman.
	=E2=80=A2 LOG4J2-3475: Add missing message parameterization in =
RegexFilter. Thanks to Jeremy Lin.
	=E2=80=A2 LOG4J2-3428: Update 3rd party dependencies for 2.18.0.
	=E2=80=A2 LOG4J2-3531: Fix parsing error, when XInclude is =
disabled. Thanks to Simo Nikula.
	=E2=80=A2 LOG4J2-3537: Fixes problem with wrong ANSI escape code =
for bright colors Thanks to Pavel_K.
Changes

	=E2=80=A2 LOG4J2-3536: Upgrade the Flume Appender to Flume =
1.10.0
	=E2=80=A2 LOG4J2-3516: Move perf tests to log4j-core-its
	=E2=80=A2 LOG4J2-3506: Support Spring 2.6.x.
	=E2=80=A2 LOG4J2-3473: Make the default disruptor WaitStrategy =
used by Async Loggers garbage-free.
	=E2=80=A2 LOG4J2-3476: Do not throw =
UnsupportedOperationException when JUL ApiLogger::setLevel is called.
	=E2=80=A2 LOG4J2-3427: Improves ServiceLoader support on servlet =
containers.
Apache Log4j 2.18.0 requires a minimum of Java 8 to build and run. Log4j =
2.12.4 is the last release to support Java 7. Log4j 2.3.2 is the last =
release to support Java 6. Java 6 and Java 7 are no longer supported by =
the Log4j team.

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