NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Maven Central · #1215 by repository stars
Cassandra appender for Log4j.
Last release 3 months ago
01 Jul 2026
Release timing varies
gaps range from 3 weeks to 6 months
Rarely documented
notes for 10 of 41 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
42 releases · first in 2017
Nothing published for this version
This patch release delivers certain fixes on top of 2.26.0 .
This patch release delivers certain fixes on top of 2.26.0.
createOnDemand behavior of RollingFileAppender to correctly defer file and directory creation until the first log event, while preserving eager creation when disabled. (#2006, #4072)MapMessage to JSON (#4163)MSGID and SD-ID fields of StructuredDataMessage to XML (#4136)equals() and/or hashCode() implementations) (#3933, #4133)ConfigurationSource when loading configuration via URL fails (#4127)KafkaAppender reporting error to error handler even after a successful retry (#4125)One column per quarter.
Deprecated withers in builder classes in favor of setters. This change improves API consistency with Log4j Core 3 and helps users adapt to the upcomin…
This minor release delivers all the fixes in the [2.25.0, 2.25.4] version range, plus some new fixes, and several other improvements and features.
ConfigurationFactory::getConfiguration method accepting multiple URIs (#3775, #3921)org.apache.logging.log4j.core.pattern.NamedInstantPattern enabling users to programmatically access named date & time patterns supported by Pattern Layout (#3789)log4j.plugin.processor.minAllowedMessageKind annotation processor option to PluginProcessor to filter diagnostic messages by severity. This allows builds that treat compiler notes as errors (e.g. Maven with -Werror) to suppress informational notes emitted during normal plugin processing. (https://github.com/apache/logging-log4j2/discussions/3380[#3380], #4063)Rfc5424LayoutBuilderScripts element have explicit names by throwing a ConfigurationException for unnamed ones. (#3176)Scripts element is placed after a ScriptRef in the configuration. (#3336)ArrayIndexOutOfBoundsException thrown by ThrowableStackTraceRenderer when the stack trace is modified concurrently (#3940, #3955)SLF4JLogger.atFatal() returning atLevel(Level.TRACE) instead of atLevel(Level.FATAL). This was causing FATAL-level log events to be silently discarded when using the fluent API through the log4j-to-slf4j bridge. (#4068, #4089)RollingRandomAccessFileManager that was being incorrectly skipped if append=true and the file didn't exist beforejvmrunargs lookup. (#3874)This patch release delivers certain fixes on top of 2.25.4
This patch release delivers certain fixes on top of 2.25.4
createOnDemand behavior of RollingFileAppender to correctly defer file and directory creation until the first log event, while preserving eager creation when disabled. (#2006, #4072)MapMessage to JSON (#4163)MSGID and SD-ID fields of StructuredDataMessage to XML (#4136)equals() and/or hashCode() implementations) (#3933, #4133)ConfigurationSource when loading configuration via URL fails (#4127)KafkaAppender reporting error to error handler even after a successful retry (#4125)This patch release delivers fixes for configuration inconsistencies and formatting issues across several layouts.
This patch release delivers fixes for configuration inconsistencies and formatting issues across several layouts.
The authoritative list of recognized configuration attributes is available in the PluginReference.
null. (#3975, #4014)Rfc5424Layout parameter names. (#4022, #4074)Throwable#toString() into account while rendering stack traces in Pattern Layout. (#3623, #4033)Loader class. (#4058, #4060)SslConfiguration factory method usage with Log4j 2.12+ API. The verifyHostname attribute is now correctly recognized. (#4061, #4075)JsonWriter. (#4080)This patch release addresses issues detailed in the changelog below. In particular, it includes an important fix for the host name verification in SSL
This patch release addresses issues detailed in the changelog below. In particular, it includes an important fix for the host name verification in SSL/TLS configuration. This is used by Socket Appender.
DefaultThreadContextMap.getCopy() performance by avoiding megamorphic calls in HashMap constructor (#3935, #3939)SslConfiguration (#3947, #3953)This patch release addresses certain minor issues detailed in the changelog.
This patch release addresses certain minor issues detailed in the changelog.
LogBuilder in Log4j API to Logback bridge (#3819, #3824)AbstractDriverManagerConnectionSource (#3828, #3831)log4j-core (#3835, #3851)Target value in Console Appender (#3852)RollingFileManager (#3068, #3872)com.google.errorprone:error_prone_annotations dependency whose version property gets erased due to flattening (#3779, #3785, #3822, #3905)Throwable converters inside nested Pattern Layout patterns when applying alwaysWriteExceptions (#3920)InstantPatternDynamicFormatter (#3930, #3932)This patch release addresses a dozen bugs in version 2.25.0 , in particular:
This patch release addresses a dozen bugs in version 2.25.0, in particular:
spotbugs-annotations to resolve Gradle build failures. (#3754)jspecify and error_prone_annotations dependencies in published POM files. (#3758, #3779)LoggerContext.start method. (#3770)-Alog4j.graalvm.groupId and -Alog4j.graalvm.artifactId arguments when building Log4j plugins. (#3771)Import-Package constraints to support Jakarta Servlet API up to version 6. (#3787)resource: protocol for configuration files by default when running on GraalVM. (#3790)log4j2.enabledThreadlocals is true. (#3792)@Nullable String[]. (#3796)PropertiesConfiguration compatibility issues with GraalVM and address additional minor reflection-related problems. (#3800)…and FastDateFormat . These are now deprecated in favor of Java’s standard DateTimeFormatter .
This minor release introduces bug fixes, behavior improvements, and complete support for GraalVM native image generation.
Log4j Core and all extension modules now include embedded
GraalVM reachability metadata,
enabling seamless generation of native images with GraalVM out of the box—no manual configuration required.
For more information, refer to our GraalVM guide.
Note
When building third-party Log4j plugins, using the new GraalVmProcessor
introduced in version 2.25.0 will automatically generate the required reachability metadata for GraalVM native images.
However, the processor will fail the build if the required log4j.graalvm.groupId and log4j.graalvm.artifactId parameters are not provided.
For detailed instructions, see Registering plugins.
Exception handling in Pattern Layout has undergone a significant rewrite.
This update resolves several bugs and ensures consistent behavior across all exception converters.
Key improvements include:
{ansi} option in exception converters has been removed.Log4j has historically provided custom date and time formatters for performance, such as FixedDateFormat and FastDateFormat.
These are now deprecated in favor of Java’s standard DateTimeFormatter.
If you encounter formatting issues after upgrading—particularly with n or x directives—you can temporarily revert to the legacy formatters by setting the log4j2.instantFormatter property to legacy.
Please report any issues via our issue tracker.
Modern Windows versions (10 and newer) provide native ANSI escape sequence support.
As a result, dependency on the outdated JAnsi 1.x library has been removed.
For details, refer to ANSI styling on Windows.
A Jakarta-compatible version of the JMS Appender is now included in the core distribution.
GraalVmProcessor annotation processor to generate GraalVM reachability metadata. (#3053)MonitorResource configuration option to support the monitoring of external files in addition to the configuration file itself. (#3074, #3501)collectionName and databaseName arguments to the MongoDB appender (#3467)JAnsiTextRenderer to work without JAnsi library. (#2916)DateTimeFormatter for date & time formatting of log event instants (#3121, #2943)SystemClock. (#3217)GcpLayout.json to improve compatibility with Google Cloud Logging (#3586)java.util.Base64 in Base64Util instead of reflection (#3686)LogEvent.toImmutable(), ReusableMessage.memento(), and remove ThrowableProxy usageThrowableProxy and all its usages (#2691, #3123)AbstractLogger.checkMessageFactory() (#2936)FixedDateTime, FastDateTime, and supporting classes (#3121)Loggers in LoggerRegistry. (#3143)RollingFileManager to reopen file on unsuccessful rollover (#2592)SSLContext instantiation for TLS (#2767)putAll() in thread context map (#2942)getLogger() compatibility in log4j-1.2-api (#3030)log4j-bom (#3066, logging-parent#265)o.a.l.Priority to Log4j 2 Level conversion (#3085)Logger.getLevel() and Logger.setLevel() (#3119)AsyncWaitStrategyFactoryConfig validation (#3159)rootLogger = LEVEL syntax (#3206)ArrayIndexOutOfBoundsException in JSON Template Layout (#3212)replacement in RegexReplacement (#3215)AsyncAppender and FailoverAppender (#3257)isFiltered() (#3300)Level converter documentation (#3359)RecyclerFactoryConverter loading in JSON Layout (#3398)InternalLoggerRegistry locking and clean up stale entries (#3399, #3430, #3681)shutdownDisable config (#2614)ArrayIndexOutOfBoundsException in StatusData#getFormattedStatus (#3562)SecurityManager (#3639)ArrayIndexOutOfBoundsException in Message.getFormattedMessage() (#3655)stderr by default (fixes regression in 2.23.0) (#3665)equals() between ReadOnlyStringMap implementations (#3669)JsonWriter{ansi} option in Pattern Layout exception converters (#3045)actions/stale to 9.1.0 (#3625)logback-core to 1.3.15 (#3354)jackson-bom to 2.19.0 (#3708)spotbugs-annotations to 4.9.3 (#3545)docker-maven-plugin to 0.46.0 (#3592)cassandra-all to 3.11.19 (#3440)commons-csv to 1.14.0 (#3559)commons-dbcp2 to 2.13.0 (#3271)commons-pool2 to 2.12.1 (#3422)kafka-clients to 3.9.1 (#3678)logging-parent to 12.1.1tomcat-juli to 10.1.30 (#2999)jetty-util to 9.4.57.v20241219 (#3377)jmdns to 3.6.1 (#3544)bson to 5.5.1 (#3722)slf4j-api to 2.0.17 (#3499)spring-cloud-context to 4.3.0 (#3700)This release fixes two minor bugs.
This release fixes two minor bugs.
ConcurrentModificationException, if multiple threads modify loggers concurrently.PropertiesUtil against property sources that call PropertiesUtil recursively.This release fixes a critical bug in Log4j API initialization code, which can cause LogManager.getLogger() to return null under certain conditions. Se
This release fixes a critical bug in Log4j API initialization code, which can cause LogManager.getLogger() to return null under certain conditions. See #3143 for details.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →