////
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

         https://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
////

[#release-notes-2-23-0]
== 2.23.0

Release date:: 2024-02-17

This release adds support for LMAX Disruptor 4.x and several performance and bug fixes.

In order to maintain compatibility with JRE 8, support for LMAX Disruptor 3.x is maintained.


[#release-notes-2-23-0-added]
=== Added

* Added support for LMAX Disruptor 4.x (https://github.com/apache/logging-log4j2/issues/1821[1821])

[#release-notes-2-23-0-changed]
=== Changed

* Simplify BND configuration after upgrade from version `6.4.1` to `7.0.0`

[#release-notes-2-23-0-deprecated]
=== Deprecated

* Deprecate the configuration attribute `verbose` (i.e., `<Configuration verbose="..."`) and `StatusConsoleListener` filters (https://github.com/apache/logging-log4j2/pull/2226[2226])
* Deprecated the `RingBufferLogEventHandler` class for removal from the public API in 3.x

[#release-notes-2-23-0-fixed]
=== Fixed

* Fix regression in `JdkMapAdapterStringMap` performance. (https://github.com/apache/logging-log4j2/issues/2238[2238])
* Fix the behavior of `Logger#setLevel` and `Logger#getLevel` in the Log4j 1.2 bridge. (https://github.com/apache/logging-log4j2/issues/2282[2282])
* Fix the behavior of `CoreLogger#getLevel` and `CoreLogger#setLevel` in the `log4j-jul` module. (https://github.com/apache/logging-log4j2/issues/2282[2282])
* Allow deserialization of all arrays of allowed classes. (https://issues.apache.org/jira/browse/LOG4J2-3680[LOG4J2-3680])
* Allow the <Properties> node to appear in any position in the configuration element.
* Fix forgotten `threadName` field in `RingBufferLogEvent#clear()` (https://github.com/apache/logging-log4j2/issues/2234[2234])
* Fix `StringBuilder` cache corruption on recursive access
* Fixed use of `SecurityManager` in `LoaderUtil` where `AccessController::doPrivileged` should only be invoked when a `SecurityManager` is installed. Some runtimes do not seem to have this method available. (https://github.com/apache/logging-log4j2/issues/2129[2129])
* Fix `log4j-spring-cloud-config-client` dependencies to include only those required. (https://github.com/apache/logging-log4j2/pull/2157[2157])
* Fix typo in Kubernetes `clientKeyData` configuration property.

[#release-notes-2-23-0-updated]
=== Updated

* Update `com.fasterxml.jackson:jackson-bom` to version `2.16.1` (https://github.com/apache/logging-log4j2/pull/2126[2126])
* Update `commons-codec:commons-codec` to version `1.16.1` (https://github.com/apache/logging-log4j2/pull/2277[2277])
* Update `io.netty:netty-bom` to version `4.1.107.Final` (https://github.com/apache/logging-log4j2/pull/2284[2284])
* Update `org.apache.logging:logging-parent` to version `10.6.0` (https://github.com/apache/logging-log4j2/pull/2197[2197])
* Update `org.eclipse.jetty:jetty-bom` to version `9.4.54.v20240208` (https://github.com/apache/logging-log4j2/pull/2287[2287])
* Update `org.jctools:jctools-core` to version `4.0.3` (https://github.com/apache/logging-log4j2/pull/2270[2270])
* Update `org.springframework:spring-framework-bom` to version `5.3.32` (https://github.com/apache/logging-log4j2/pull/2293[2293])
* Update `org.zeromq:jeromq` to version `0.6.0` (https://github.com/apache/logging-log4j2/pull/2271[2271])
