2.24.0
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 website has been almost entirely rewritten to provide improved documentation and faster access to the information you need.
Bridges
The JUL-to-Log4j API and Log4j 1-to-Log4j API bridges 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 usinglog4j-bom
to always use its latest version. -
log4j-kubernetes
The module has been moved to the Fabric8.io Kubernetes project and follows the Fabric8.io release lifecycle. -
log4j-mongodb3
The module based on MongoDB Java client version 3.x has been removed.
Please migrate tolog4j-mongodb
(client version 5.x) orlog4j-mongodb4
(client version 4.x).
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
andlog4j-slf4j2-impl
.
Users can enable it by setting the propertylog4j2.messageFactory
toorg.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. (Spirng-33450)
- Add logging to
PropertiesUtil
and fixDuration
parser. (#1936) - Disable level modification via JUL by default. (#2353)
- Centralize initialization in the
Provider
class and deprecatelog4j2.loggerContextFactory
property. (#2374) - Remove
log4j-kubernetes
lookup. User should migrate toio.fabric8:kubernetes-log4j
. (#2412) - Disable JMX support by default. Require
log4j2.disableJmx
to be set tofalse
to enable JMX support. (#2462) - Replace some usages of
DateTimeFormatter#toString()
withDateTimeFormatter#formatTo(StringBuilder)
to cut down on allocations
(#2515) - Disable programmatic configuration in Log4j 1 Bridge if
log4j1.compatibility
isfalse
. (#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. (LOG4J2-3618)
- Prioritize user-defined values of
log4j2.enableThreadLocals
,log4j2.garbagefreeThreadContextMap
andlog4j2.shutdownHookEnabled
over the value oflog4j.isWebapp
. (#2517) - Disallow duplicate keys in JSON Template Layout templates
- Deprecate
log4j2.defaultStatusLevel
property in Log4j Core in favor oflog4j2.statusLoggerLevel
(#2481) - 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)
Deprecated
- Deprecate
Message#getFormat()
due to unclear semantics andinconsistent 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 oflog4j-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
andlog4j2.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
- Update
com.fasterxml.jackson:jackson-bom
to version2.17.2
(#2719) - Update
com.github.luben:zstd-jni
to version1.5.6-5
(#2901) - Update
commons-codec:commons-codec
to version1.17.1
(#2741) - Update
commons-logging:commons-logging
to version1.3.4
(#2864) - Update
github/codeql-action
to version3.25.1
(#2483) - Update
io.fabric8:docker-maven-plugin
to version0.45.0
(#2776) - Update
org.apache.cassandra:cassandra-all
to version3.11.17
(#2479) - Update
org.apache.commons:commons-compress
to version1.27.1
(#2869) - Update
org.apache.commons:commons-csv
to version1.11.0
(#2565) - Update
org.apache.commons:commons-lang3
to version3.17.0
(#2907) - Update
org.apache.kafka:kafka-clients
to version3.8.0
(#2777) - Update
org.apache.logging:logging-parent
to version11.2.0
- Update
org.eclipse.jetty:jetty-bom
to version9.4.55.v20240627
(#2709) - Update
org.jctools:jctools-core
to version4.0.5
(#2637) - Update log4j-mongodb4
org.mongodb:*
from4.11.1
to4.11.2
(#2409) - Update
org.mongodb:bson
to version5.1.3
(#2823) - Update
org.slf4j:slf4j-api
to version2.0.16
(#2829) - Update
org.springframework:spring-framework-bom
to version5.3.39
(#2840)