blob: a873e0492b3af54c3f077febcb23b13578697c17 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 from target/generated-sources/site/asciidoc/_release-notes/_2.12.0.adoc at 2024-03-06
| Rendered using Apache Maven Fluido Skin 1.11.2
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
<title>Log4j &#x2013; </title>
<link rel="stylesheet" href="../css/apache-maven-fluido-1.11.2.min.css" />
<link rel="stylesheet" href="../css/site.css" />
<link rel="stylesheet" href="../css/print.css" media="print" />
<script src="../js/apache-maven-fluido-1.11.2.min.js"></script>
</head>
<body class="topBarDisabled">
<div class="container-fluid">
<header>
<div id="banner">
<div class="pull-left"><a href="../../.." id="bannerLeft"><img src="../images/ls-logo.jpg" alt="" style="" /></a></div>
<div class="pull-right"><a href=".././" id="bannerRight"><img src="../images/logo.png" alt="" style="" /></a></div>
<div class="clear"><hr/></div>
</div>
<div id="breadcrumbs">
<ul class="breadcrumb">
<li id="publishDate">Last Published: 2024-03-06<span class="divider">|</span>
</li>
<li id="projectVersion">Version: 2.23.1</li>
<li class="pull-right"><span class="divider">|</span>
<a href="https://github.com/apache/logging-log4j2" class="externalLink" title="GitHub">GitHub</a></li>
<li class="pull-right"><span class="divider">|</span>
<a href="../../../" title="Logging Services">Logging Services</a></li>
<li class="pull-right"><span class="divider">|</span>
<a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a></li>
<li class="pull-right"><a href="https://cwiki.apache.org/confluence/display/LOGGING/Log4j" class="externalLink" title="Logging Wiki">Logging Wiki</a></li>
</ul>
</div>
</header>
<div class="row-fluid">
<header id="leftColumn" class="span2">
<nav class="well sidebar-nav">
<ul class="nav nav-list">
<li class="nav-header"><img class="imageLink" src="../img/glyphicons/home.png" alt="Apache Log4j™ 2" style="border: 0;" /> Apache Log4j™ 2</li>
<li><a href="../index.html" title="About"><span class="none"></span>About</a></li>
<li><a href="../download.html" title="Download"><span class="none"></span>Download</a></li>
<li><a href="../support.html" title="Support"><span class="none"></span>Support</a></li>
<li><a href="../maven-artifacts.html" title="Maven, Ivy, Gradle Artifacts"><span class="icon-chevron-right"></span>Maven, Ivy, Gradle Artifacts</a></li>
<li><a href="../release-notes.html" title="Release Notes"><span class="none"></span>Release Notes</a></li>
<li><a href="../faq.html" title="FAQ"><span class="none"></span>FAQ</a></li>
<li><a href="../performance.html" title="Performance"><span class="icon-chevron-right"></span>Performance</a></li>
<li><a href="../articles.html" title="Articles and Tutorials"><span class="none"></span>Articles and Tutorials</a></li>
<li><a href="../security.html" title="Security"><span class="icon-chevron-right"></span>Security</a></li>
<li class="nav-header"><img class="imageLink" src="../img/glyphicons/book.png" alt="Manual" style="border: 0;" /> Manual</li>
<li><a href="../manual/index.html" title="Introduction"><span class="none"></span>Introduction</a></li>
<li><a href="../manual/architecture.html" title="Architecture"><span class="none"></span>Architecture</a></li>
<li><a href="../manual/api-separation.html" title="API Separation"><span class="none"></span>API Separation</a></li>
<li><a href="../manual/migration.html" title="Log4j 1.x Migration"><span class="icon-chevron-right"></span>Log4j 1.x Migration</a></li>
<li><a href="../manual/api.html" title="Java API"><span class="icon-chevron-right"></span>Java API</a></li>
<li><a href="../../kotlin" title="Kotlin API"><span class="none"></span>Kotlin API</a></li>
<li><a href="../../scala" title="Scala API"><span class="none"></span>Scala API</a></li>
<li><a href="../manual/configuration.html" title="Configuration"><span class="icon-chevron-right"></span>Configuration</a></li>
<li><a href="../manual/usage.html" title="Usage"><span class="icon-chevron-right"></span>Usage</a></li>
<li><a href="../manual/webapp.html" title="Web Applications and JSPs"><span class="icon-chevron-right"></span>Web Applications and JSPs</a></li>
<li><a href="../manual/lookups.html" title="Lookups"><span class="icon-chevron-right"></span>Lookups</a></li>
<li><a href="../manual/appenders.html" title="Appenders"><span class="icon-chevron-right"></span>Appenders</a></li>
<li><a href="../manual/layouts.html" title="Layouts"><span class="icon-chevron-right"></span>Layouts</a></li>
<li><a href="../manual/filters.html" title="Filters"><span class="icon-chevron-right"></span>Filters</a></li>
<li><a href="../manual/async.html" title="Async Loggers"><span class="icon-chevron-right"></span>Async Loggers</a></li>
<li><a href="../manual/garbagefree.html" title="Garbage-free Logging"><span class="icon-chevron-right"></span>Garbage-free Logging</a></li>
<li><a href="../manual/jmx.html" title="JMX"><span class="none"></span>JMX</a></li>
<li><a href="../manual/logsep.html" title="Logging Separation"><span class="none"></span>Logging Separation</a></li>
<li><a href="../manual/extending.html" title="Extending Log4j"><span class="icon-chevron-right"></span>Extending Log4j</a></li>
<li><a href="../manual/plugins.html" title="Plugins"><span class="icon-chevron-right"></span>Plugins</a></li>
<li><a href="../manual/customconfig.html" title="Programmatic Log4j Configuration"><span class="icon-chevron-right"></span>Programmatic Log4j Configuration</a></li>
<li><a href="../manual/customloglevels.html" title="Custom Log Levels"><span class="icon-chevron-right"></span>Custom Log Levels</a></li>
<li class="nav-header"><img class="imageLink" src="../img/glyphicons/pencil.png" alt="For Contributors" style="border: 0;" /> For Contributors</li>
<li><a href="../guidelines.html" title="Guidelines"><span class="none"></span>Guidelines</a></li>
<li><a href="../javastyle.html" title="Style Guide"><span class="none"></span>Style Guide</a></li>
<li class="nav-header"><img class="imageLink" src="../img/glyphicons/cog.png" alt="Components" style="border: 0;" /> Components</li>
<li><a href="../log4j-api.html" title="API"><span class="none"></span>API</a></li>
<li><a href="../log4j-jcl.html" title="Commons Logging Bridge"><span class="none"></span>Commons Logging Bridge</a></li>
<li><a href="../log4j-1.2-api.html" title="Log4j 1.2 API"><span class="none"></span>Log4j 1.2 API</a></li>
<li><a href="../log4j-slf4j-impl.html" title="SLF4J Binding"><span class="none"></span>SLF4J Binding</a></li>
<li><a href="../log4j-jul.html" title="JUL Adapter"><span class="none"></span>JUL Adapter</a></li>
<li><a href="../log4j-jpl.html" title="JDK Platform Logger"><span class="none"></span>JDK Platform Logger</a></li>
<li><a href="../log4j-to-slf4j.html" title="Log4j 2 to SLF4J Adapter"><span class="none"></span>Log4j 2 to SLF4J Adapter</a></li>
<li><a href="../log4j-flume-ng.html" title="Apache Flume Appender"><span class="none"></span>Apache Flume Appender</a></li>
<li><a href="../log4j-taglib.html" title="Log4j Tag Library"><span class="none"></span>Log4j Tag Library</a></li>
<li><a href="../log4j-jmx-gui.html" title="Log4j JMX GUI"><span class="none"></span>Log4j JMX GUI</a></li>
<li><a href="../log4j-web.html" title="Log4j Web Application Support"><span class="none"></span>Log4j Web Application Support</a></li>
<li><a href="../log4j-jakarta-web.html" title="Log4j Jakarta Web Application Support"><span class="none"></span>Log4j Jakarta Web Application Support</a></li>
<li><a href="../log4j-appserver.html" title="Log4j Application Server Integration"><span class="none"></span>Log4j Application Server Integration</a></li>
<li><a href="../log4j-couchdb.html" title="Log4j CouchDB appender"><span class="none"></span>Log4j CouchDB appender</a></li>
<li><a href="../log4j-mongodb3.html" title="Log4j MongoDB3 appender"><span class="none"></span>Log4j MongoDB3 appender</a></li>
<li><a href="../log4j-mongodb4.html" title="Log4j MongoDB4 appender"><span class="none"></span>Log4j MongoDB4 appender</a></li>
<li><a href="../log4j-cassandra.html" title="Log4j Cassandra appender"><span class="none"></span>Log4j Cassandra appender</a></li>
<li><a href="../log4j-iostreams.html" title="Log4j IO Streams"><span class="none"></span>Log4j IO Streams</a></li>
<li><a href="../log4j-docker.html" title="Log4j Docker Support"><span class="none"></span>Log4j Docker Support</a></li>
<li><a href="../log4j-kubernetes.html" title="Log4j Kubernetes Support"><span class="none"></span>Log4j Kubernetes Support</a></li>
<li><a href="../log4j-spring-boot.html" title="Log4j Spring Boot"><span class="none"></span>Log4j Spring Boot</a></li>
<li><a href="../log4j-spring-cloud-config-client.html" title="Log4j Spring Cloud Config Client"><span class="none"></span>Log4j Spring Cloud Config Client</a></li>
<li class="nav-header"><img class="imageLink" src="../img/glyphicons/tag.png" alt="Related Projects" style="border: 0;" /> Related Projects</li>
<li><a href="../../../chainsaw/2.x/index.html" title="Chainsaw"><span class="none"></span>Chainsaw</a></li>
<li><a href="../../../log4cxx/latest_stable/index.html" title="Log4Cxx"><span class="none"></span>Log4Cxx</a></li>
<li><a href="../../../log4j-audit/latest/index.html" title="Log4j Audit"><span class="none"></span>Log4j Audit</a></li>
<li><a href="../../kotlin" title="Log4j Kotlin"><span class="none"></span>Log4j Kotlin</a></li>
<li><a href="../../scala" title="Log4j Scala"><span class="none"></span>Log4j Scala</a></li>
<li><a href="../../transform" title="Log4j Transform"><span class="none"></span>Log4j Transform</a></li>
<li><a href="../../../log4net/index.html" title="Log4Net"><span class="none"></span>Log4Net</a></li>
<li class="nav-header"><img class="imageLink" src="../img/glyphicons/link.png" alt="Legacy Sites" style="border: 0;" /> Legacy Sites</li>
<li><a href="../../log4j-2.12.4/" title="Log4j 2.12.4 - Java 7"><span class="none"></span>Log4j 2.12.4 - Java 7</a></li>
<li><a href="../../log4j-2.3.2/" title="Log4j 2.3.2 - Java 6"><span class="none"></span>Log4j 2.3.2 - Java 6</a></li>
<li><a href="../../1.2/" title="Log4j 1.2 - End of Life"><span class="none"></span>Log4j 1.2 - End of Life</a></li>
<li class="nav-header"><img class="imageLink" src="../img/glyphicons/info.png" alt="Project Information" style="border: 0;" /> Project Information</li>
<li><a href="../team.html" title="Project Team"><span class="none"></span>Project Team</a></li>
<li><a href="https://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="Project License"><span class="none"></span>Project License</a></li>
<li><a href="https://github.com/apache/logging-log4j2" class="externalLink" title="Source Repository"><span class="none"></span>Source Repository</a></li>
<li><a href="../runtime-dependencies.html" title="Runtime Dependencies"><span class="none"></span>Runtime Dependencies</a></li>
<li><a href="../javadoc.html" title="Javadoc"><span class="none"></span>Javadoc</a></li>
<li><a href="../thanks.html" title="Thanks"><span class="none"></span>Thanks</a></li>
</ul>
</nav>
<div class="well sidebar-nav">
<div id="poweredBy">
<div class="clear"></div>
<div class="clear"></div>
<div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /></a>
</div>
</div>
</header>
<main id="bodyColumn" class="span10" >
<div class="sect1">
<h2 id="release-notes-2-12-0">2.12.0</h2>
<div class="sectionbody">
<div class="dlist">
<dl>
<dt class="hdlist1">Release date</dt>
<dd>
<p>2019-06-23</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>This release contains bugfixes and minor enhancements.</p>
</div>
<div class="paragraph">
<p>Due to a break in compatibility in the SLF4J binding, Log4j now ships with two versions of the SLF4J to Log4j adapters.
<code>log4j-slf4j-impl</code> should be used with SLF4J 1.7.x and earlier and <code>log4j-slf4j18-impl</code> should be used with SLF4J 1.8.x and later.</p>
</div>
<div class="paragraph">
<p>New features include support for reconfiguration of Log4j configuraton files accessed via HTTP(s) and Spring Cloud Config specifically, a new Docker Lookup for obtaining information about the current Docker container, new reconfiguration methods added to the Configurator class, the ability to pad integers with leading zeros in filenames generated by the rolling file appenders, and allowing the TCP <code>SocketAppender</code> to connect to multiple IP addresses when they are returned from DNS.</p>
</div>
<div class="paragraph">
<p>More details on the new features and fixes are itemized below.</p>
</div>
<div class="paragraph">
<p>Note that the XML, JSON and YAML formats changed in the 2.11.0 release: they no longer have the <code>timeMillis</code> attribute and instead have an <code>Instant</code> element with <code>epochSecond</code> and <code>nanoOfSecond</code> attributes.</p>
</div>
<div class="paragraph">
<p>The Log4j 2.12.0 API, as well as many core components, maintains binary compatibility with previous releases.</p>
</div>
<div class="paragraph">
<p>Log4j 2.12.0 requires a minimum of Java 7 to build and run.
Log4j 2.3 was the last release that supported Java 6.</p>
</div>
<div class="paragraph">
<p>Basic compatibility with Log4j 1.x is provided through the <code>log4j-1.2-api</code> component, however it does
not implement some of the very implementation specific classes and methods.
The package names and Maven <code>groupId</code> have been changed to <code>org.apache.logging.log4j</code> to avoid any conflicts with Log4j 1.x.</p>
</div>
<div class="paragraph">
<p>For complete information on Apache Log4j 2, including instructions on how to submit bug reports, patches, or suggestions for improvement, see <a href="http://logging.apache.org/log4j/2.x/">the Apache Log4j 2 website</a>.</p>
</div>
<div class="sect2">
<h3 id="release-notes-2-12-0-added">Added</h3>
<div class="ulist">
<ul>
<li>
<p>Allow custom end-of-line with JsonLayout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2337">LOG4J2-2337</a>)</p>
</li>
<li>
<p>Allow zero padding the counter of a RollingFileAppender. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2403">LOG4J2-2403</a>)</p>
</li>
<li>
<p>Add reconfiguration methods to Configurator. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2406">LOG4J2-2406</a>)</p>
</li>
<li>
<p>Add filter that will match events when no marker is present. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2427">LOG4J2-2427</a>)</p>
</li>
<li>
<p>TCP Appender should support a host name resolving to multiple IP addresses. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2586">LOG4J2-2586</a>)</p>
</li>
<li>
<p>GZIP compression on rollover supports configurable compression levels. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2598">LOG4J2-2598</a>)</p>
</li>
<li>
<p>AsyncQueueFullPolicy configuration short values "Default" and "Discard" are case-insensitive to avoid confusion. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2611">LOG4J2-2611</a>)</p>
</li>
<li>
<p>Add and use method org.apache.logging.log4j.message.MapMessage.toKey(String) for simpler subclasses. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2634">LOG4J2-2634</a>)</p>
</li>
<li>
<p>Add support for reconfiguration via HTTP(S), Docker, and Spring Cloud Configuration. (<a href="https://issues.apache.org/jira/browse/LOG4J2-913">LOG4J2-913</a>)</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="release-notes-2-12-0-changed">Changed</h3>
<div class="ulist">
<ul>
<li>
<p>Update Jackson from 2.9.7 to 2.9.8. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2570">LOG4J2-2570</a>)</p>
</li>
<li>
<p>Update MongoDB 3 module driver from 3.9.0 to 3.10.1. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2574">LOG4J2-2574</a>)</p>
</li>
<li>
<p>Update Jackson from 2.9.8 to 2.9.9. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2619">LOG4J2-2619</a>)</p>
</li>
<li>
<p>Refactor several AsyncLogger methods below the 35 byte threshold for inlining. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2634">LOG4J2-2634</a>)</p>
</li>
<li>
<p>Update tests from H2 1.4.197 to 1.4.199.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="release-notes-2-12-0-fixed">Fixed</h3>
<div class="ulist">
<ul>
<li>
<p>FailoverAppender was failing with ERROR appender Failover has no parameter that matches element Failovers. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1103">LOG4J2-1103</a>)</p>
</li>
<li>
<p>Lookups were not found if the plugin key was not lower case. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1143">LOG4J2-1143</a>)</p>
</li>
<li>
<p>Locate plugins within a Jar using a URL Connection. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1852">LOG4J2-1852</a>)</p>
</li>
<li>
<p>RollingRandomAccessFileAppender error message referenced incorrect class name. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2547">LOG4J2-2547</a>)</p>
</li>
<li>
<p>NullPointerException in JdbcAppender.createAppender(). (<a href="https://issues.apache.org/jira/browse/LOG4J2-2559">LOG4J2-2559</a>)</p>
</li>
<li>
<p>JEP223 version detection fix for JDK 9 and up. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2561">LOG4J2-2561</a>)</p>
</li>
<li>
<p>MapPatternConverter is properly created from the '%K', '%map', and '%MAP' patterns. PatternConverter instanceOf methods with unknown parameter types no longer elide those with known parameters. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2564">LOG4J2-2564</a>)</p>
</li>
<li>
<p>StackOverflowException when server not reachable with SocketAppender. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2592">LOG4J2-2592</a>)</p>
</li>
<li>
<p>Throw better exception message when both log4j-slf4j-impl and log4j-to-slf4j are present. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2597">LOG4J2-2597</a>)</p>
</li>
<li>
<p>java.lang.StackOverflowError at org.apache.logging.log4j.junit.AbstractExternalFileCleaner.println(AbstractExternalFileCleaner.java:169). (<a href="https://issues.apache.org/jira/browse/LOG4J2-2598">LOG4J2-2598</a>)</p>
</li>
<li>
<p>Update file time when size based triggering policy is used without a time-based triggering policy. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2602">LOG4J2-2602</a>)</p>
</li>
<li>
<p>Asynchronous logging when the queue is full no longer results in heavy CPU utilization and low throughput. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2606">LOG4J2-2606</a>)</p>
</li>
<li>
<p>Explicitly set file creation time. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2610">LOG4J2-2610</a>)</p>
</li>
<li>
<p>NullPointerException at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.writeInternal(JdbcDatabaseManager.java:803). (<a href="https://issues.apache.org/jira/browse/LOG4J2-2612">LOG4J2-2612</a>)</p>
</li>
<li>
<p>Restore constructor to ThrowablePatternConverter that was removed in 2.8.2. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2616">LOG4J2-2616</a>)</p>
</li>
<li>
<p>Possible ClassCastException in org.apache.logging.log4j.core.script.ScriptManager.ScriptManager(Configuration, WatchManager) (<a href="https://issues.apache.org/jira/browse/LOG4J2-2618">LOG4J2-2618</a>)</p>
</li>
<li>
<p>StructuredDataId was ignoring maxLength attribute. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2622">LOG4J2-2622</a>)</p>
</li>
<li>
<p>Fix a race allowing events not to be recorded when a RoutingAppender purge policy attempts to delete an idle appender at exactly the same time as a new event is recorded. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2629">LOG4J2-2629</a>)</p>
</li>
<li>
<p>RoutingAppender PurgePolicy implementations no longer stop appenders referenced from the logger configuration, only those that have been created by the RoutingAppender. Note that RoutingAppender.getAppenders no longer includes entries for referenced appenders, only those which it has created. (<a href="https://issues.apache.org/jira/browse/LOG4J2-2631">LOG4J2-2631</a>)</p>
</li>
<li>
<p>RFC5424Layout was not properly setting default Structured Element id for the MDC (<a href="https://issues.apache.org/jira/browse/LOG4J2-2636">LOG4J2-2636</a>)</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
<hr/>
<footer>
<div class="container-fluid">
<div class="row-fluid">
<p align="center">Copyright &copy; 1999-2024 <a class="external" href="https://www.apache.org">The Apache Software Foundation</a>. All Rights Reserved.<br>
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation.</p>
</div>
</div>
</footer>
<script>
if(anchors) {
anchors.add();
}
</script>
</body>
</html>