The API section has
Thread Context is mostly superseded by Scoped Context, which, unlike Thread
Context,
• is safe to use in servlet applications
• can store any Object-typed value
While I totally agree with this I was under the impression that ScopedContext
was removed from Log4j 2.24.0, so this will lead to user questions.
Ralph
> On Aug 31, 2024, at 2:00 PM, Ralph Goers <[email protected]> wrote:
>
> The release notes page says:
>
> "log4j-flume-ngT
> The module has been moved to the Flume project and follows the Apache Flume
> release lifecycle.
>
> We NEVER discussed this. We simply discussed moving it to another repo. As in
> 3.0.0, where more modules are split out, I believe it would be more
> appropriate to say that they will have their own release cycles.
>
> Ralph
>
>> On Aug 31, 2024, at 1:55 PM, Ralph Goers <[email protected]> wrote:
>>
>> I looked at the download page and it does NOT meet the requirements for a
>> release announcement:
>> "Announcements must contain a link to the relevant download page for the
>> source.” The download page contains a link to a generic directory listing
>> of all Logging Services releases.
>>
>> You can quibble here about whether what is being done meets the
>> requirements, but it doesn’t matter. All announcements get moderated and
>> Sebb will check this and if he doesn’t like it he will reject the
>> announcement email.
>>
>> Note that the web site is NOT officially part of the release so I am NOT
>> going to vote -1 due to any web site issues. Just be aware you are likely to
>> have problems announcing the release.
>>
>> Ralph
>>
>>
>>> On Aug 31, 2024, at 12:30 PM, Piotr P. Karwasz <[email protected]>
>>> wrote:
>>>
>>> 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: 08053687456f6be61ee8206da782a3d051928a57
>>> Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
>>> Nexus:
>>> https://repository.apache.org/content/repositories/orgapachelogging-1293
>>> 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
>>> svn co https://dist.apache.org/repos/dist/dev/logging/log4j/2.24.0 && cd $_
>>>
>>> # Verify checksums
>>> shasum --check *.sha512
>>>
>>> # Verify signatures
>>> wget -O - https://downloads.apache.org/logging/KEYS | gpg --import
>>> for sigFile in *.asc; do gpg --verify $sigFile; done
>>>
>>> # Verify reproduciblity
>>> umask 0022
>>> unzip *-src.zip -d src
>>> cd src
>>> export
>>> NEXUS_REPO=https://repository.apache.org/content/repositories/orgapachelogging-1293
>>> sh mvnw -Prelease verify artifact:compare -Dreference.repo=$NEXUS_REPO
>>> # If preferred, augment `mvnw` with `-DskipTests` to speed things up
>>>
>>> == 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 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 has been moved to the Flume project and follows the Apache
>>> Flume release lifecycle.
>>>
>>> `log4j-kubernetes`::
>>> The module has been moved to the
>>> https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md[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 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
>>> https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md[`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.
>>> (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)
>>>
>>> === 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)
>>
>