[ANNOUNCE] Apache Log4j `2.24.0` released

2024-09-06 Thread Piotr P. Karwasz

Apache Log4j team is pleased to announce the `2.24.0`
release. Apache Log4j is a versatile, industrial-strength
Java logging framework composed of an API, its implementation,
and components to assist the deployment for various use cases.
For further information (support, download, etc.) see the project
website[1].

[1] https://logging.apache.org/log4j/2.x/index.html

== Release Notes

The `2.24.0` version of Log4j API has been enhanced with changes from
the 3.x branch and will be used by both Log4j 2 Core and Log4j 3 Core
releases.
The changes include:

* A faster default `ThreadContextMap`.
* Enhanced GraalVM support: native binaries that use Log4j API will no
longer require additional GraalVM configuration.
* The configuration properties subsystem now only accepts the official
pre-2.10 property names and the normalized post-2.10 names.
Check your configuration for typos.

=== Documentation

The Apache Log4j 2[1] website has been almost entirely rewritten to
provide improved documentation and faster access to the information
you need.

[1] https://logging.staged.apache.org/log4j/2.24.0/index.html 



=== Bridges

The JUL-to-Log4j API and Log4j 1-to-Log4j API will no longer be able
to modify the configuration of Log4j Core by default.
If such a functionality is required, it must be explicitly enabled.

=== Modules

The following Log4j Core additional modules have been removed:

`log4j-flume-ng`::
The module is no longer part of the release process and will follow
its own release lifecycle.
Please manage your dependencies using `log4j-bom`[2] to always use its
latest version.

`log4j-kubernetes`::
The module has been moved to the Fabric8.io Kubernetes project[3] and
follows the Fabric8.io release lifecycle.

`log4j-mongodb3`::
The module based on MongoDB Java client version 3.x has been removed.
Please migrate to `log4j-mongodb`[4] (client version 5.x) or
`log4j-mongodb4`[5] (client version 4.x).

[2] https://logging.apache.org/log4j/2.x/components.html#log4j-bom 

[3] 
https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md 

[4] https://logging.apache.org/log4j/2.x/components.html#log4j-mongodb 

[5] https://logging.apache.org/log4j/2.x/components.html#log4j-mongodb4 



=== JMX changes

Starting in version 2.24.0, JMX support is disabled by default and can
be re-enabled via the `log4j2.disableJmx=false` system property.

=== Added

* Add a faster `DefaultThreadContextMap` implementation. (#2330)
* Add Logback throwable-consuming semantics as an option in
`log4j-slf4j-impl` and `log4j-slf4j2-impl`. Users can enable it by
setting the property `log4j2.messageFactory` to
`org.apache.logging.slf4j.mess

age.ThrowableConsumingMessageFactory`.
(#2363)
* Add trace context fields to `GcpLayout.json` (#2498)
* Add _"Plugin Reference"_ to the website. It is a Javadoc-on-steroids
focusing on Log4j plugins. (#1954)
* Automate website deployment using the new CI infrastructure shipped
with `org.apache.logging:logging-parent:11.0.0`

=== Changed

* Fix usage of `log4j-api` in GraalVM without additional reachability
data. (#1539)
* Ignore exceptions thrown by PropertySources.
* Add logging to `PropertiesUtil` and fix `Duration` parser. (#1936)
* Disable level modification via JUL by default. (#2353)
* Centralize initialization in the `Provider` class and deprecate
`log4j2.loggerContextFactory` property. (#2374)
* Remove `log4j-kubernetes` lookup. User should migrate to
`io.fabric8:kubernetes-log4j`[6]. (#2412)
* Disable JMX support by default. Require `log4j2.disableJmx` to be
set to `false` to enable JMX support. (#2462)
* Replace some usages of `DateTimeFormatter#toString()` with
`DateTimeFormatter#formatTo(StringBuilder)` to cut down on allocations
(#2515)
* Disable programmatic configuration in Log4j 1 Bridge if
`log4j1.compatibility` is `false`. (#2778)
* Improve missing plugin descriptor warnings. (#2835)
* Remove configuration properties caching and (undocumented) fuzzy
property name matching. (#2849)
* Fixes property source ordering to account for different sources with
the same priority.
* Prioritize user-defined values of `log4j2.enableThreadLocals`,
`log4j2.garbagefreeThreadContextMap` and `log4j2.shutdownHookEnabled`
over the value of `log4j.isWebapp`. (#2517)
* Disallow duplicate keys in JSON Template Layout templates
* Deprecate `log4j2.defaultStatusLevel` property in Log4j Core in
favor of `log4j2.statusLoggerLevel` (#2481)

=== Deprecated

* Deprecate `Message#getFormat()` due to unclear semantics and
inconsistent implementations (#2773)
* Deprecate `org.apache.logging.log4j.EventLogger` for removal (#2665)
* Deprecate `org.apache.loggi

Re: [ANNOUNCE] Apache Log4j `2.24.0` released

2024-09-06 Thread Piotr P. Karwasz
Hi Ralph,

On Sat, 7 Sept 2024 at 07:00, Ralph Goers  wrote:
>
> As I said previously, you should expect this will NOT get moderated through 
> the ASF announce list.

The e-mail has the same format as the one I sent for 2.23.0[1] and is
very similar to the one for 3.0.0-alpha1[2].

Looking at other announcement emails, we could probably modify ours by:

* Stripping them of the release notes, except the short intro we write
manually. The entire list of changes can probably be replaced with a
link to the release notes.
* Adding the download and release notes links explicitly.

What do you think?

Piotr

[1] https://lists.apache.org/thread/8fycgpb2k274bc4y8gp1zswy5jpzc2jh
[2] https://lists.apache.org/thread/z3otp9jr9bpo0r732k02g1mdlfkjb3gm