Skip to content

2.24.0

Compare
Choose a tag to compare
@ppkarwasz ppkarwasz released this 06 Sep 22:03
· 207 commits to 2.x since this release
c79ae32

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 using log4j-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 to log4j-mongodb (client version 5.x) or log4j-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 inlog4j-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. (Spirng-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. (#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. (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)
  • 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 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

  • 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)