blob: 449575aa5c37a9213cfa1d6fa6b26416b8df4cc9 [file] [log] [blame]
<!DOCTYPE html>
<!--
| Generated by Apache Maven Doxia Site Renderer 1.11.1 from target/generated-sources/site/asciidoc/_release-notes/_2.7.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-7">2.7</h2>
<div class="sectionbody">
<div class="dlist">
<dl>
<dt class="hdlist1">Release date</dt>
<dd>
<p>2016-10-02</p>
</dd>
</dl>
</div>
<div class="paragraph">
<p>This release contains several bugfixes and new features.
The new features include new logging API modules for Scala 2.10 and 2.11, and support for various non-blocking queue implementations in <code>AsyncAppender</code>.
Furthermore the <code>ThreadContext</code> map can now be configured to be garbage-free, and users can now inject context data from other sources than <code>ThreadContext</code>.
Context data values can be any <code>Object</code>, not just <code>String</code>s.
More details on the fixes are itemized below.</p>
</div>
<div class="paragraph">
<p>Note that subsequent to the 2.6 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>The Log4j 2.7 API, as well as many core components, maintains binary compatibility with previous releases.</p>
</div>
<div class="paragraph">
<p>Log4j 2.7 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-7-added">Added</h3>
<div class="ulist">
<ul>
<li>
<p>Users can now inject context data from other sources than ThreadContext. Values can be any Object, not just Strings. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1010">LOG4J2-1010</a>)</p>
</li>
<li>
<p>Added Logging API for Scala 2.10 and 2.11. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1181">LOG4J2-1181</a>)</p>
</li>
<li>
<p>(GC) Added support for garbage-free ThreadContext map. Disabled by default, users need to enable this explicitly. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1349">LOG4J2-1349</a>)</p>
</li>
<li>
<p>Added optional support for Conversant DisruptorBlockingQueue in AsyncAppender. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1430">LOG4J2-1430</a>)</p>
</li>
<li>
<p>Added optional support for JCTools MPSC bounded lock-free queue in AsyncAppender. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1439">LOG4J2-1439</a>)</p>
</li>
<li>
<p>(GC) Changed LogEvent&#8217;s internal data structure for context data to be garbage-free. Added method LogEvent#getContextData(), deprecated method #getContextMap(). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1447">LOG4J2-1447</a>)</p>
</li>
<li>
<p>[PatternLayout] Add an ANSI option to %message. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1458">LOG4J2-1458</a>)</p>
</li>
<li>
<p>[PatternLayout] Add an ANSI option to %xThrowable. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1471">LOG4J2-1471</a>)</p>
</li>
<li>
<p>org.apache.logging.log4j.core.LoggerContext now implements Closeable. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1472">LOG4J2-1472</a>)</p>
</li>
<li>
<p>FileAppender is now able to create files on-demand. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1501">LOG4J2-1501</a>)</p>
</li>
<li>
<p>RollingFileAppender is now able to create files on-demand. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1504">LOG4J2-1504</a>)</p>
</li>
<li>
<p>Create a Builder for the FileAppender plugin to facilitate adding attributes in the future. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1505">LOG4J2-1505</a>)</p>
</li>
<li>
<p>Allow Builders to be completely generic. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1507">LOG4J2-1507</a>)</p>
</li>
<li>
<p>Allow a Builder to subclass another Builder. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1508">LOG4J2-1508</a>)</p>
</li>
<li>
<p>Added options to exclude stack trace from JSON, XML and YAML layouts. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1512">LOG4J2-1512</a>)</p>
</li>
<li>
<p>Add ThreadContextMap2 interface supporting method putAll(Map&lt;String, String&gt;). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1516">LOG4J2-1516</a>)</p>
</li>
<li>
<p>Add ThreadContext.putAll(Map&lt;String, String&gt;). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1519">LOG4J2-1519</a>)</p>
</li>
<li>
<p>Add JUnit Rule implementations to manage the thread context. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1520">LOG4J2-1520</a>)</p>
</li>
<li>
<p>Added ability to generate Log4j 2-style XML configuration file from ConfigurationBuilder. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1528">LOG4J2-1528</a>)</p>
</li>
<li>
<p>Added Core API Configurator.shutdown(LoggerContext, long, TimeUnit). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1539">LOG4J2-1539</a>)</p>
</li>
<li>
<p>The Core AbstractManager now tracks its LoggerContext. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1540">LOG4J2-1540</a>)</p>
</li>
<li>
<p>The Core AbstractConfiguration now tracks its LoggerContext and add Configuration.getLoggerContext(). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1547">LOG4J2-1547</a>)</p>
</li>
<li>
<p>AbstractManager now implements AutoCloseable. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1553">LOG4J2-1553</a>)</p>
</li>
<li>
<p>Add a Builder for the SocketAppender (deprecates factory method). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1557">LOG4J2-1557</a>)</p>
</li>
<li>
<p>SocketAppender now supports IO buffering. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1558">LOG4J2-1558</a>)</p>
</li>
<li>
<p>Added support for java.util.concurrent.LinkedTransferQueue to AsyncAppender. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1568">LOG4J2-1568</a>)</p>
</li>
<li>
<p>Add a Builder to the RoutingAppender and deprecate factory method. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1577">LOG4J2-1577</a>)</p>
</li>
<li>
<p>RoutingAppender can be configured with scripts. Add Script in a Routes element. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1578">LOG4J2-1578</a>)</p>
</li>
<li>
<p>Add a ScriptAppenderSelector to create an Appender specified by a Script. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1597">LOG4J2-1597</a>)</p>
</li>
<li>
<p>Add a Builder to ServletAppender and deprecate factory method. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1609">LOG4J2-1609</a>)</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="release-notes-2-7-changed">Changed</h3>
<div class="ulist">
<ul>
<li>
<p>Updated Jackson from 2.7.5 to 2.8.0. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1458">LOG4J2-1458</a>)</p>
</li>
<li>
<p>Updated JMS test from ActiveMQ 5.13.3 to 5.13.4. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1487">LOG4J2-1487</a>)</p>
</li>
<li>
<p>Updated Jackson from 2.8.0 to 2.8.1. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1494">LOG4J2-1494</a>)</p>
</li>
<li>
<p>Updated LMAX Disruptor from 3.3.4 to 3.3.5. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1495">LOG4J2-1495</a>)</p>
</li>
<li>
<p>Updated Kafka client from 0.9.1.0 to 0.10.0.0. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1496">LOG4J2-1496</a>)</p>
</li>
<li>
<p>Updated Kafka client from 0.10.0.0 to 0.10.0.1. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1533">LOG4J2-1533</a>)</p>
</li>
<li>
<p>Removed deprecated Core API org.apache.logging.log4j.core.util.Constants.UTF_8. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1543">LOG4J2-1543</a>)</p>
</li>
<li>
<p>Removed deprecated Core API org.apache.logging.log4j.core.util.Assert.requireNonNull(T, String). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1544">LOG4J2-1544</a>)</p>
</li>
<li>
<p>Removed deprecated Web API org.apache.logging.log4j.web.WebLookup.getServletContext(). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1545">LOG4J2-1545</a>)</p>
</li>
<li>
<p>Updated JMS test from ActiveMQ 5.13.4 to 5.14.0. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1551">LOG4J2-1551</a>)</p>
</li>
<li>
<p>Custom Log4j threads now extend Log4jThread. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1556">LOG4J2-1556</a>)</p>
</li>
<li>
<p>Updated Jackson from 2.8.1 to 2.8.2. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1569">LOG4J2-1569</a>)</p>
</li>
<li>
<p>Allow the RollingFileAppender to use default pattern layout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1574">LOG4J2-1574</a>)</p>
</li>
<li>
<p>Updated Jackson from 2.8.2 to 2.8.3. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1598">LOG4J2-1598</a>)</p>
</li>
<li>
<p>Log4j2 TcpSocketServer in background. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1604">LOG4J2-1604</a>)</p>
</li>
<li>
<p>Improve error messages for TcpSocketServer and UdpSocketServer. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1605">LOG4J2-1605</a>)</p>
</li>
<li>
<p>Update Apache Commons Compress from 1.12 to 1.13. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1757">LOG4J2-1757</a>)</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="release-notes-2-7-fixed">Fixed</h3>
<div class="ulist">
<ul>
<li>
<p>When starting on Google App Engine, Interpolator now suppresses the NoClassDefFoundError stack trace for the jvmrunargs lookup. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1051">LOG4J2-1051</a>)</p>
</li>
<li>
<p>Documented that JVM Input Arguments Lookup (JMX) is not available on Google App Engine. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1199">LOG4J2-1199</a>)</p>
</li>
<li>
<p>org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy was not working correctly. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1235">LOG4J2-1235</a>)</p>
</li>
<li>
<p>Log4j threads are no longer leaking on Tomcat shutdown. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1259">LOG4J2-1259</a>)</p>
</li>
<li>
<p>Prevent NullPointerException in FastDateParser$TimeZoneStrategy. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1279">LOG4J2-1279</a>)</p>
</li>
<li>
<p>Properties declared in configuration can now have their value either in the element body or in an attribute named "value". (<a href="https://issues.apache.org/jira/browse/LOG4J2-1313">LOG4J2-1313</a>)</p>
</li>
<li>
<p>Support Property values to be specified in configuration as a value attribute as well as an element. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1313">LOG4J2-1313</a>)</p>
</li>
<li>
<p>Support loading custom plugins from jar files and directories whose classpath entries use the "vfs" URL protocol. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1320">LOG4J2-1320</a>)</p>
</li>
<li>
<p>(GC) HighlightConverter and StyleConverter are now GC-free. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1341">LOG4J2-1341</a>)</p>
</li>
<li>
<p>(GC) Added method getParameter() to ObjectMessage (and ReusableObjectMessage). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1438">LOG4J2-1438</a>)</p>
</li>
<li>
<p>Allow comma separated agents, host list to be passed to FlumeAppender. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1448">LOG4J2-1448</a>)</p>
</li>
<li>
<p>Fixed class loader deadlock when using async logging and extended stack trace pattern. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1457">LOG4J2-1457</a>)</p>
</li>
<li>
<p>[OSGi] Fixed missing import package. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1467">LOG4J2-1467</a>)</p>
</li>
<li>
<p>Fixed improper header in CsvParameterLayout. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1482">LOG4J2-1482</a>)</p>
</li>
<li>
<p>(GC) Fixed ISO8601 %date conversion pattern with a period '.' separator for milliseconds is now garbage free. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1488">LOG4J2-1488</a>)</p>
</li>
<li>
<p>(GC) Fixed %date conversion patterns with a timezone parameter are now garbage free. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1489">LOG4J2-1489</a>)</p>
</li>
<li>
<p>Log4j2 should postpone creating log file until the appender actually receives an event. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1490">LOG4J2-1490</a>)</p>
</li>
<li>
<p>Merging configurations failed with an NPE when comparing Nodes with different attributes. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1500">LOG4J2-1500</a>)</p>
</li>
<li>
<p>Fixed issue where CsvParameterLayout and CsvLogEventLayout inserted NUL characters if data starts with {, (, [ or " (<a href="https://issues.apache.org/jira/browse/LOG4J2-1502">LOG4J2-1502</a>)</p>
</li>
<li>
<p>Log4j should not unregister JMX MBeans when log4j2.disable.jmx property is true. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1506">LOG4J2-1506</a>)</p>
</li>
<li>
<p>DynamicThresholdFilter filtered incorrectly when params were passed as individual arguments instead of varargs. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1511">LOG4J2-1511</a>)</p>
</li>
<li>
<p>Prevent deadlock in Async Loggers when queue is full and logged Object&#8217;s toString() logs another message. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1518">LOG4J2-1518</a>)</p>
</li>
<li>
<p>Added support for setting StatusLogger destination in ConfigurationBuilder. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1526">LOG4J2-1526</a>)</p>
</li>
<li>
<p>Prevent NPE in RingBufferLogEvent.getFormattedMessage() when used in web applications. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1527">LOG4J2-1527</a>)</p>
</li>
<li>
<p>Attributes were not merged properly in composite configurations. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1529">LOG4J2-1529</a>)</p>
</li>
<li>
<p>Fixed issue where LogEvent.getContextStack() returned null. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1530">LOG4J2-1530</a>)</p>
</li>
<li>
<p>Attributes were not merged properly in composite configurations. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1532">LOG4J2-1532</a>)</p>
</li>
<li>
<p>Prevent NPE when dynamically removing filters. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1538">LOG4J2-1538</a>)</p>
</li>
<li>
<p>Fix file handle resource leak in XmlConfiguration.XmlConfiguration(ConfigurationSource). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1541">LOG4J2-1541</a>)</p>
</li>
<li>
<p>Prevent ArrayIndexOutOfBoundsException in ParameterizedMessage.formatTo for single-char or empty messages. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1542">LOG4J2-1542</a>)</p>
</li>
<li>
<p>[CronTriggeringPolicy] ConfigurationScheduler scheduled the task infinitely after first fire. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1548">LOG4J2-1548</a>)</p>
</li>
<li>
<p>Fixed issue where AsyncLoggerContextSelector+PropertiesConfigurationBuilder defaulted to includeLocation=true. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1549">LOG4J2-1549</a>)</p>
</li>
<li>
<p>Prevent NPE in Level.isInRange. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1559">LOG4J2-1559</a>)</p>
</li>
<li>
<p>Prevent SocketAppender memory usage from growing unbounded if it cannot connect to a server. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1562">LOG4J2-1562</a>)</p>
</li>
<li>
<p>Fix to prevent Log4j 2.6.2 and higher from losing exceptions when a security manager is present. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1563">LOG4J2-1563</a>)</p>
</li>
<li>
<p>Layout is no longer optional. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1573">LOG4J2-1573</a>)</p>
</li>
<li>
<p>(GC) LoggerConfig now stores configuration properties in a List, not a Map to prevent creating temporary Iterator objects. Added method LoggerConfig#getPropertyList(), deprecated method #getProperties(). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1575">LOG4J2-1575</a>)</p>
</li>
<li>
<p>Unregistering JMX components no longer prints a stack trace when the MBean has already been unregistered. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1581">LOG4J2-1581</a>)</p>
</li>
<li>
<p>When initializing on platforms where JMX is not available, Interpolator component no longer prints stack trace for warning messages. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1582">LOG4J2-1582</a>)</p>
</li>
<li>
<p>Fixed scrambled log messages triggered by nested logging from toString() method of a logging parameter object. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1583">LOG4J2-1583</a>)</p>
</li>
<li>
<p>Fixed issue with filters extending AbstractFilter that did not override methods with unrolled varargs. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1590">LOG4J2-1590</a>)</p>
</li>
<li>
<p>Introduced new interface LifeCycle2 with stop(long,TimeUnit) method to avoid breaking backwards compatibility with new Configurator.shutdown(LoggerContext, long, TimeUnit) API. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1591">LOG4J2-1591</a>)</p>
</li>
<li>
<p>Prevent potential NPE in org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, char[], int, Object[], int, int[]). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1599">LOG4J2-1599</a>)</p>
</li>
<li>
<p>Prevent potential NPE due to org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], String, boolean, boolean, Configuration). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1600">LOG4J2-1600</a>)</p>
</li>
<li>
<p>Prevent potential NPE due to org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, PatternMatch[], String, boolean, boolean, Configuration). (<a href="https://issues.apache.org/jira/browse/LOG4J2-1601">LOG4J2-1601</a>)</p>
</li>
<li>
<p>Prevent potential NPE in org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) when object is null. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1602">LOG4J2-1602</a>)</p>
</li>
<li>
<p>Redo hashCode() and equals() methods in org.apache.logging.log4j.core.net.ssl classes. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1603">LOG4J2-1603</a>)</p>
</li>
<li>
<p>ServletAppender does not provide throwable object to ServletContext. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1608">LOG4J2-1608</a>)</p>
</li>
<li>
<p>Add targetNamespace to log4j-config.xsd. GitHub #43. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1610">LOG4J2-1610</a>)</p>
</li>
<li>
<p>Improved performance of context data injector for web applications to be on par with standalone applications. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1611">LOG4J2-1611</a>)</p>
</li>
<li>
<p>Fixed ClassCastException when using JUL logging during shutdown. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1618">LOG4J2-1618</a>)</p>
</li>
<li>
<p>new Log4jLogEvent().toString() throws an NPE. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1619">LOG4J2-1619</a>)</p>
</li>
<li>
<p>2.7-rc1: RollingFileAppender immediateFlush default value should be true, not false. (<a href="https://issues.apache.org/jira/browse/LOG4J2-1620">LOG4J2-1620</a>)</p>
</li>
<li>
<p>[OSGi] Fixed wrong Fragment-Host in manifest files. (<a href="https://issues.apache.org/jira/browse/LOG4J2-351">LOG4J2-351</a>)</p>
</li>
<li>
<p>Added ability to disable (date) lookup completely for compatibility with other libraries like Camel. (<a href="https://issues.apache.org/jira/browse/LOG4J2-905">LOG4J2-905</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>