blob: c171279d4cea39b4376f0d331748823cedb16933 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 from target/generated-sources/site/asciidoc/_release-notes/_2.6.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-6">2.6</h2>
<div class="sectionbody">
<div class="dlist">
<dl>
<dt class="hdlist1">Release date</dt>
<dd>
<p>2016-05-25</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>This is the tenth GA release.
It contains several bugfixes and new features.
The new features include the ability to be <em>garbage-free</em> (avoid allocating temporary objects) while logging if certain conditions are met, a new YAML Layout, the ability to merge configuration files, and documenting Log4j&#8217;s performance against other logging frameworks and in various logging configurations.
More details on the features and bugfixes are itemized below.</p>
</div>
<div class="paragraph">
<p>Note that subsequent to the release a minor source incompatibility was found due to the addition of new methods to the <code>Logger</code> interface.
If you have code that does:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">logger.error(null, “This is the log message”, throwable);</code></pre>
</div>
</div>
<div class="paragraph">
<p>or similar with any log level you will get a compiler error saying the reference is ambiguous.
To correct this either do:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">logger.error(“This is the log message”, throwable);</code></pre>
</div>
</div>
<div class="paragraph">
<p>or</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlight"><code class="language-java" data-lang="java">logger.error((Marker) null, “This is the log message”, throwable);</code></pre>
</div>
</div>
<div class="paragraph">
<p>Log4j 2.6 maintains binary compatibility with previous releases.</p>
</div>
<div class="paragraph">
<p>Log4j 2.6 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-6-added">Added</h3>
<div class="ulist">
<ul>
<li>
<p>Document dependencies for layouts. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1011">LOG4J2-1011</a>)</p>
</li>
<li>
<p>Added option to discard events below a certain log level if the async logger ring buffer or async appender queue is full. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1080">LOG4J2-1080</a>)</p>
</li>
<li>
<p>Add JNDI lookup documentation. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1133">LOG4J2-1133</a>)</p>
</li>
<li>
<p>PatternLayout: Possible variable substitution in equals substitution parameter. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1169">LOG4J2-1169</a>)</p>
</li>
<li>
<p>Documented benchmark results comparing Log4j 2 performance to other logging libraries. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1179">LOG4J2-1179</a>)</p>
</li>
<li>
<p>Dynamic Subject for SMTP Appender. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1192">LOG4J2-1192</a>)</p>
</li>
<li>
<p>PatternLayout option to limit length of text. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1217">LOG4J2-1217</a>)</p>
</li>
<li>
<p>Added async logger Timeout wait strategy and made this the default wait strategy for async loggers. This prevents a rare deadlock that may occur on Solaris. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1221">LOG4J2-1221</a>)</p>
</li>
<li>
<p>Make PatternLayout header and footer accept a pattern. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1237">LOG4J2-1237</a>)</p>
</li>
<li>
<p>Make header and footer values customizable in JSONLayout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1244">LOG4J2-1244</a>)</p>
</li>
<li>
<p>Make CSV Layout header and footers accept patterns. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1245">LOG4J2-1245</a>)</p>
</li>
<li>
<p>Add shutdown methods to LogManager. (<a href="https://issues.apache.org/jira/browse/LOG4J2-124">LOG4J2-124</a>)</p>
</li>
<li>
<p>JeroMqAppender should support layouts. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1252">LOG4J2-1252</a>)</p>
</li>
<li>
<p>(GC) Added support for garbage-free logging in steady state. This includes Async Loggers and logging synchronously to the console and to a file, but does not include the AsyncAppender. This release makes the GelfLayout and the main patterns in the PatternLayout garbage-free. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1270">LOG4J2-1270</a>)</p>
</li>
<li>
<p>(GC) Add MessageFactory that avoid allocation by reusing a cached ParameterizedMessage instance. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1271">LOG4J2-1271</a>)</p>
</li>
<li>
<p>(GC) Add encode(LogEvent, ByteBufferDestination) method to Layout API to enable converting LogEvents to bytes without creating temporary objects. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1274">LOG4J2-1274</a>)</p>
</li>
<li>
<p>FormattedMessage, MessageFormatMessage and StringFormattedMessage should support passing in a Locale to ensure appropriate formatting. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1277">LOG4J2-1277</a>)</p>
</li>
<li>
<p>(GC) Added unrolled varargs methods to Logger API, added Unbox utility to avoid auto-boxing when logging primitive values. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1278">LOG4J2-1278</a>)</p>
</li>
<li>
<p>(GC) Add interface StringBuilderFormattable to enable converting Messages and parameters to text without allocating temporary objects. ParameterizedMessage, ObjectMessage, SimpleMessage and ThreadDumpMessage now implement StringBuilderFormattable. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1293">LOG4J2-1293</a>)</p>
</li>
<li>
<p>(GC) Added manual page on garbage-free logging. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1297">LOG4J2-1297</a>)</p>
</li>
<li>
<p>Add pattern converter for thread id and priority in PatternLayout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1299">LOG4J2-1299</a>)</p>
</li>
<li>
<p>Add documentation links to runtime dependencies in each component intro page. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1303">LOG4J2-1303</a>)</p>
</li>
<li>
<p>(GC) Added methods to the Logger interface for logging CharSequence messages. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1326">LOG4J2-1326</a>)</p>
</li>
<li>
<p>(GC) FileAppender, RollingFileAppender and MemoryMappedFileAppender are now also garbage-free by default. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1344">LOG4J2-1344</a>)</p>
</li>
<li>
<p>Add an AutoCloseable ThreadContext class: CloseableThreadContext. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1348">LOG4J2-1348</a>)</p>
</li>
<li>
<p>Option to not log stack traces for logged Throwables in GelfLayout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1357">LOG4J2-1357</a>)</p>
</li>
<li>
<p>Added a YAML layout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1362">LOG4J2-1362</a>)</p>
</li>
<li>
<p>(GC) Update Logger wrapper Generator tool to generate methods for the new Logger methods. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1373">LOG4J2-1373</a>)</p>
</li>
<li>
<p>Support merging configurations to for a composite configuration. (<a href="https://issues.apache.org/jira/browse/LOG4J2-494">LOG4J2-494</a>)</p>
</li>
<li>
<p>Pattern to drop first N package parts. (<a href="https://issues.apache.org/jira/browse/LOG4J2-621">LOG4J2-621</a>)</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="release-notes-2-6-changed">Changed</h3>
<div class="ulist">
<ul>
<li>
<p>org.apache.logging.log4j.core.LoggerContext#updateLoggers should call firePropertyChangeEvent. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1206">LOG4J2-1206</a>)</p>
</li>
<li>
<p>Update SLF4J from 1.7.12 to 1.7.13. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1219">LOG4J2-1219</a>)</p>
</li>
<li>
<p>Misleading Value In Properties Example. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1233">LOG4J2-1233</a>)</p>
</li>
<li>
<p>Update Jackson from 2.6.3 to 2.6.4. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1239">LOG4J2-1239</a>)</p>
</li>
<li>
<p>Update Liquibase from 3.3.5 to 3.4.2. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1240">LOG4J2-1240</a>)</p>
</li>
<li>
<p>Update Jackson from 2.6.4 to 2.7.0. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1249">LOG4J2-1249</a>)</p>
</li>
<li>
<p>Update LMAX Disruptor from 3.3.2 to 3.3.4. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1253">LOG4J2-1253</a>)</p>
</li>
<li>
<p>Add enhanced entry and exit methods. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1255">LOG4J2-1255</a>)</p>
</li>
<li>
<p>(GC) ParameterizedMessage optimizations to avoid or at least postpone allocating temporary objects. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1271">LOG4J2-1271</a>)</p>
</li>
<li>
<p>(GC) Improve LoggerConfig&#8217;s data structure for AppenderControl objects to avoid allocating temporary objects during traversal for each log event. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1272">LOG4J2-1272</a>)</p>
</li>
<li>
<p>(GC) Provide ThreadLocal-based gc-free caching mechanism in DatePatternConverter for non-webapps. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1283">LOG4J2-1283</a>)</p>
</li>
<li>
<p>(GC) Update PatternLayout to utilize gc-free mechanism for LogEvent processing. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1291">LOG4J2-1291</a>)</p>
</li>
<li>
<p>(GC) Update RandomAccessFileAppender and RollingRandomAccessFileAppender to utilize gc-free Layout.encode() method. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1292">LOG4J2-1292</a>)</p>
</li>
<li>
<p>Update Kafka client from 0.9.0.0 to 0.9.0.1. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1294">LOG4J2-1294</a>)</p>
</li>
<li>
<p>Remove serializability from classes that don&#8217;t need it. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1300">LOG4J2-1300</a>)</p>
</li>
<li>
<p>Update Jackson from 2.7.0 to 2.7.2. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1304">LOG4J2-1304</a>)</p>
</li>
<li>
<p>JeroMqAppender should use ShutdownCallbackRegistry instead of runtime hooks. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1306">LOG4J2-1306</a>)</p>
</li>
<li>
<p>Remove need to pre-specify appender et al. identifiers in property file config format. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1308">LOG4J2-1308</a>)</p>
</li>
<li>
<p>(GC) Avoid allocating unnecessary temporary objects in LoggerContext&#8217;s getLogger methods. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1318">LOG4J2-1318</a>)</p>
</li>
<li>
<p>(GC) Avoid allocating unnecessary temporary objects in PatternLayout&#8217;s NamePatternConverter and ClassNamePatternConverter. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1321">LOG4J2-1321</a>)</p>
</li>
<li>
<p>Update Log4j 1.x migration guide to include information about system property lookup syntax changes. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1322">LOG4J2-1322</a>)</p>
</li>
<li>
<p>(GC) Avoid allocating unnecessary temporary objects in MarkerManager&#8217;s getMarker methods. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1333">LOG4J2-1333</a>)</p>
</li>
<li>
<p>(GC) ConsoleAppender is now garbage-free by default. This logic is reusable for all AbstractOutputStreamAppender subclasses. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1343">LOG4J2-1343</a>)</p>
</li>
<li>
<p>(Doc) Clarify documentation for properties that control Log4j behaviour. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1345">LOG4J2-1345</a>)</p>
</li>
<li>
<p>Update Jackson from 2.7.2 to 2.7.3. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1351">LOG4J2-1351</a>)</p>
</li>
<li>
<p>Update javax.mail from 1.5.4 to 1.5.5. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1352">LOG4J2-1352</a>)</p>
</li>
<li>
<p>(GC) GelfLayout does now support garbage-free logging (with compressionType=OFF). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1356">LOG4J2-1356</a>)</p>
</li>
<li>
<p>Update Apache Commons Compress from 1.10 to 1.11. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1358">LOG4J2-1358</a>)</p>
</li>
<li>
<p>(Log4j-internal) Provide message text as CharSequence for some message types to optimize some layouts. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1365">LOG4J2-1365</a>)</p>
</li>
<li>
<p>Migrate tests from Logback 1.1.3 to 1.1.7. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1374">LOG4J2-1374</a>)</p>
</li>
<li>
<p>Update SLF4J from 1.7.13 to 1.7.21. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1375">LOG4J2-1375</a>)</p>
</li>
<li>
<p>Update Jackson from 2.7.3 to 2.7.4. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1380">LOG4J2-1380</a>)</p>
</li>
<li>
<p>Update Apache Commons CSV from 1.2 to 1.3. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1384">LOG4J2-1384</a>)</p>
</li>
<li>
<p>Update Google java-allocation-instrumenter from 3.0 to 3.0.1. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1388">LOG4J2-1388</a>)</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="release-notes-2-6-fixed">Fixed</h3>
<div class="ulist">
<ul>
<li>
<p>Add a Log4jLookup class to help write log files relative to log4j2.xml. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1050">LOG4J2-1050</a>)</p>
</li>
<li>
<p>Fix documentation to specify the correct default wait strategy used by async loggers. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1212">LOG4J2-1212</a>)</p>
</li>
<li>
<p>Documentation/XSD inconsistencies. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1215">LOG4J2-1215</a>)</p>
</li>
<li>
<p>Creation of a LoggerContext will fail if shutdown is in progress. LogManager will default to SimpleLogger instead. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1222">LOG4J2-1222</a>)</p>
</li>
<li>
<p>NullPointerException in MapLookup.lookup if the event is null. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1227">LOG4J2-1227</a>)</p>
</li>
<li>
<p>Don&#8217;t concatenate SYSLOG Messages. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1230">LOG4J2-1230</a>)</p>
</li>
<li>
<p>Incorrect log rotation in last week of year. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1232">LOG4J2-1232</a>)</p>
</li>
<li>
<p>org.apache.logging.log4j.core.net.TcpSocketManager and other classes does not report internal exceptions to the status logger. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1238">LOG4J2-1238</a>)</p>
</li>
<li>
<p>Fixed broken nanotime in pattern layout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1248">LOG4J2-1248</a>)</p>
</li>
<li>
<p>Fix JUL bridge issue where LogRecord.getParameters() is used when null. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1251">LOG4J2-1251</a>)</p>
</li>
<li>
<p>Fix typo in Flow Tracing documentation. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1254">LOG4J2-1254</a>)</p>
</li>
<li>
<p>Async DynamicThresholdFilter does not use the log event&#8217;s context map. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1258">LOG4J2-1258</a>)</p>
</li>
<li>
<p>TlsSyslogFrame calculates message length incorrectly. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1260">LOG4J2-1260</a>)</p>
</li>
<li>
<p>Stop throwing unnecessary exception in Log4jServletContextListener.contextDestroyed(). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1262">LOG4J2-1262</a>)</p>
</li>
<li>
<p>The ConfigurationSource was not saved for BuiltConfigurations so monitor interval had no effect. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1263">LOG4J2-1263</a>)</p>
</li>
<li>
<p>FixedDateFormat was incorrect for formats having MMM with the French locale. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1268">LOG4J2-1268</a>)</p>
</li>
<li>
<p>(GC) AsyncLogger should use thread-local translator by default. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1269">LOG4J2-1269</a>)</p>
</li>
<li>
<p>Fix RollingAppenderNoUnconditionalDeleteTest repeat test runs from failing. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1275">LOG4J2-1275</a>)</p>
</li>
<li>
<p>LoggerMessageSupplierTest and LoggerSupplierTest are Locale sensitive. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1276">LOG4J2-1276</a>)</p>
</li>
<li>
<p>Deprecate org.apache.logging.log4j.util.MessageSupplier. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1280">LOG4J2-1280</a>)</p>
</li>
<li>
<p>Logger methods taking Supplier parameters now correctly handle cases where the supplied value is a Message. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1280">LOG4J2-1280</a>)</p>
</li>
<li>
<p>(GC) LoggerConfig.getProperties() should not allocate on each call. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1281">LOG4J2-1281</a>)</p>
</li>
<li>
<p>Made default MessageFactory configurable. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1284">LOG4J2-1284</a>)</p>
</li>
<li>
<p>Change flow logging text from "entry' to "Enter" and "exit" to "Exit". (<a href="https://issues.apache.org/jira/browse/LOG4J2-1289">LOG4J2-1289</a>)</p>
</li>
<li>
<p>Configuration file error does not show cause exception. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1309">LOG4J2-1309</a>)</p>
</li>
<li>
<p>JndiLookup mindlessly casts to String and should use String.valueOf(). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1310">LOG4J2-1310</a>)</p>
</li>
<li>
<p>Improve error handling in the Async Logger background thread: the new default exception handler no longer rethrows the error. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1324">LOG4J2-1324</a>)</p>
</li>
<li>
<p>Fix NoClassDefFoundError in ReflectionUtil on Google App Engine. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1330">LOG4J2-1330</a>)</p>
</li>
<li>
<p>LoggerFactory in 1.2 API module is not compatible with 1.2. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1336">LOG4J2-1336</a>)</p>
</li>
<li>
<p>(Perf) AsyncLogger performance optimization: avoid calling instanceof TimestampMessage in hot path. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1339">LOG4J2-1339</a>)</p>
</li>
<li>
<p>Exception from Log4jServletContextListener prevents jetty-maven-plugin run-forked. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1346">LOG4J2-1346</a>)</p>
</li>
<li>
<p>No configuration reload is triggered under Windows when replacing the configuration file with one that has older last modified date. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1354">LOG4J2-1354</a>)</p>
</li>
<li>
<p>Properties Configuration did not support includeLocation attribute on Loggers. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1363">LOG4J2-1363</a>)</p>
</li>
<li>
<p>(Log4j-internal) StatusLogger dropped exceptions when logging parameterized messages. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1368">LOG4J2-1368</a>)</p>
</li>
<li>
<p>"xz" compression results in plaintext, uncompressed files. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1369">LOG4J2-1369</a>)</p>
</li>
<li>
<p>XMLLayout indents, but not the first child tag (Event). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1372">LOG4J2-1372</a>)</p>
</li>
<li>
<p>Copying a MutableLogEvent using Log4jLogEvent.Builder should not unnecessarily obtain caller location information. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1382">LOG4J2-1382</a>)</p>
</li>
<li>
<p>Fixed memory leak related to shutdown hook. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1387">LOG4J2-1387</a>)</p>
</li>
<li>
<p>Log4jWebInitializerImpl: Use Thread instead of Class for fallback classloader. (<a href="https://issues.apache.org/jira/browse/LOG4J2-248">LOG4J2-248</a>)</p>
</li>
<li>
<p>Generate MDC properties as a JSON map in JSONLayout, with option to output as list of map entries. (<a href="https://issues.apache.org/jira/browse/LOG4J2-623">LOG4J2-623</a>)</p>
</li>
<li>
<p>JSONLayout doesn&#8217;t add a comma between log events. (<a href="https://issues.apache.org/jira/browse/LOG4J2-908">LOG4J2-908</a>)</p>
</li>
<li>
<p>ClassNotFoundException for BundleContextSelector when initialising in an OSGi environment. (<a href="https://issues.apache.org/jira/browse/LOG4J2-920">LOG4J2-920</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>