This is a vote to release the Apache Log4j `2.24.0`. Website: https://logging.staged.apache.org/log4j/2.24.0/index.html GitHub: https://github.com/apache/logging-log4j2 Commit: c79ae325f6a21af45526c202f121bfced188613e Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j/2.24.0/ Nexus: https://repository.apache.org/content/repositories/orgapachelogging-1294 Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0
Please download, test, and cast your votes on this mailing list. [ ] +1, release the artifacts [ ] -1, don't release, because... This vote is open for 72 hours and will pass unless getting a net negative vote count. All votes are welcome and we encourage everyone to test the release, but only the Logging Services PMC votes are officially counted. At least 3 +1 votes and more positive than negative votes are required. == Review kit The minimum set of steps needed to review the uploaded distribution files in the Subversion repository can be summarized as follows: # Check out the distribution wget --cut-dirs=6 \ --no-host-directories \ --no-parent \ --recursive \ https://dist.apache.org/repos/dist/dev/logging/log4j/2.24.0/ # Verify checksums sha512sum --check *.sha512 # Verify signatures # # If you didn't import the KEYS previously, run: # wget -O - https://downloads.apache.org/logging/KEYS | gpg --import for sigFile in *.asc; do gpg --verify $sigFile; done # Verify reproducibility (only Linux/MacOS X) umask 0022 unzip *-src.zip -d src cd src export NEXUS_REPO=https://repository.apache.org/content/repositories/orgapachelogging-1294 sh mvnw -Prelease clean verify artifact:compare -Dreference.repo=$NEXUS_REPO # Run tests only (Windows) sh mvnw -Prelease clean verify == Release Notes This release contains improvements and changes in several areas of Apache Log4j: === Log4j API 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.staged.apache.org/log4j/2.24.0/components.html#log4j-bom [3] https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md [4] https://logging.staged.apache.org/log4j/2.24.0/components.html#log4j-mongodb [5] https://logging.staged.apache.org/log4j/2.24.0/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.message.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. (https://github.com/spring-projects/spring-boot/issues/33450[Spring-33450]) * 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. (https://issues.apache.org/jira/browse/LOG4J2-3618[LOG4J2-3618]) * 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) [6] https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md === Deprecated * Deprecate `Message#getFormat()` due to unclear semantics and inconsistent implementations (#2773) * Deprecate `org.apache.logging.log4j.EventLogger` for removal (#2665) * Deprecate `org.apache.logging.log4j.core.appender.rolling.action.Duration` class for removal (#2425) * Deprecate the `log4j-mongodb4` module in favor of `log4j-mongodb` (#2486) === Fixed * Use FQDN in RFC5424 Layout. (#1740) * Fix custom thread-context data provider handling in lookups and filters. (#2331) * Fix handling of `log4j2.messageFactory` and `log4j2.flowMessageFactory` properties (#2505) * Discard blank keys in `PropertiesUtil` (#2414) * Fix handling of `log4j2.debug`. (#2703) * Fix location requirement for the `%F` and `%file` keys in Pattern Layout (#2781) * Fix `JsonLayout` failure under JPMS. (#2814) * Fix empty string handling for `TruncatingBufferedWriter` (#2609) * Fix that parameterized message formatting throws an exception when there are insufficient number of parameters. It previously simply didn't replace the '{}' sequence. The behavior changed in 2.21.0 and should be restored for backward compatibility. (#2380) * Fix `ClassCastException` in LMAX Disruptor 3 initialization (#2768) * Fix requirement on the `java.management` module when JMX is disabled, which is the default (#2775) * Website is migrated to Antora with several formatting and link fixes (#2427) === Removed * Move Flume Appender to its own release lifecycle. (#2902) === Updated * Add module log4j-mongodb to track the current MongoDB driver (currently version 5). (#2486) * Remove module log4j-mongodb3, use log4j-mongodb instead, log4j-mongodb4 is deprecated for removal. (#2486) * Update `com.fasterxml.jackson:jackson-bom` to version `2.17.2` (#2719) * Update `com.github.luben:zstd-jni` to version `1.5.6-5` (#2901) * Update `commons-codec:commons-codec` to version `1.17.1` (#2741) * Update `commons-logging:commons-logging` to version `1.3.4` (#2864) * Update `github/codeql-action` to version `3.25.1` (#2483) * Update `io.fabric8:docker-maven-plugin` to version `0.45.0` (#2776) * Update `org.apache.cassandra:cassandra-all` to version `3.11.17` (#2479) * Update `org.apache.commons:commons-compress` to version `1.27.1` (#2869) * Update `org.apache.commons:commons-csv` to version `1.11.0` (#2565) * Update `org.apache.commons:commons-lang3` to version `3.17.0` (#2907) * Update `org.apache.kafka:kafka-clients` to version `3.8.0` (#2777) * Update `org.apache.logging:logging-parent` to version `11.2.0` * Update `org.eclipse.jetty:jetty-bom` to version `9.4.55.v20240627` (#2709) * Update `org.jctools:jctools-core` to version `4.0.5` (#2637) * Update log4j-mongodb4 `org.mongodb:*` from `4.11.1` to `4.11.2` (#2409) * Update `org.mongodb:bson` to version `5.1.3` (#2823) * Update `org.slf4j:slf4j-api` to version `2.0.16` (#2829) * Update `org.springframework:spring-framework-bom` to version `5.3.39` (#2840)