_posts/2020-11-11-log4j-2-14-0-released.html (142 lines of code) (raw):

--- layout: post status: PUBLISHED published: true title: Log4j 2.14.0 Released id: 31f10c37-b9c3-4289-8feb-56c47dc3b711 date: '2020-11-11 05:48:42 -0500' categories: logging tags: [] permalink: logging/entry/log4j-2-14-0-released --- <p>The Apache Log4j 2 team is pleased to announce the Log4j 2.14.0 release!</p> <p>Apache Log4j is a well known framework for logging application behavior. Log4j 2 is an upgrade<br /> to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides<br /> many other modern features such as support for Markers, lambda expressions for lazy logging,<br /> property substitution using Lookups, multiple patterns on a PatternLayout and asynchronous<br /> Loggers. Another notable Log4j 2 feature is the ability to be "garbage-free" (avoid allocating<br /> temporary objects) while logging. In addition, Log4j 2 will not lose events while reconfiguring.</p> <p>The artifacts may be downloaded from <a href="https://logging.apache.org/log4j/2.x/download.html" rel="nofollow">https://logging.apache.org/log4j/2.x/download.html</a>.</p> <p>This release contains a new Layout, JsonTemplateLayout, that is intended to ultimately replace JsonLayout. As its<br /> name suggests it uses a template to define the elements to include in the JSON. This Layout was contributed by the<br /> author of the log4j2-logstash-layout at GitHub, and who is now a member of the Log4j community.</p> <p>Log4j 2.14.0 adds support for MongoDB 4 and removes support for MongoDB 2.</p> <p>This release also contains a number of bug fixes which are listed below.</p> <p>Due to a break in compatibility in the SLF4J binding, Log4j now ships with two versions of the SLF4J to Log4j adapters.<br /> log4j-slf4j-impl should be used with SLF4J 1.7.x and earlier and log4j-slf4j18-impl should be used with SLF4J 1.8.x and<br /> later.</p> <p>The Log4j 2.14.0 API, as well as many core components, maintains binary compatibility with previous releases.</p> <h2><a id="user-content-ga-release-2140" class="anchor" aria-hidden="true" href="#ga-release-2140"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>GA Release 2.14.0</h2> <p>Changes in this version include:</p> <h3><a id="user-content-new-features" class="anchor" aria-hidden="true" href="#new-features"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>New Features</h3> <ul> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2957" rel="nofollow">LOG4J2-2957</a>:<br /> Add JsonTemplateLayout.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2848" rel="nofollow">LOG4J2-2848</a>:<br /> Create module log4j-mongodb4 to use new major version 4 MongoDB driver.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2858" rel="nofollow">LOG4J2-2858</a>:<br /> More flexible configuration of the Disruptor WaitStrategy. Thanks to Stepan Gorban.</li> </ul> <h3><a id="user-content-fixed-bugs" class="anchor" aria-hidden="true" href="#fixed-bugs"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Fixed Bugs</h3> <ul> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2925" rel="nofollow">LOG4J2-2925</a>:<br /> Fix broken link in FAQ.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2911" rel="nofollow">LOG4J2-2911</a>:<br /> Log4j2EventListener in spring.cloud.config.client listens for wrong event.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2919" rel="nofollow">LOG4J2-2919</a>:<br /> Call ReliabilityStrategy's beforeStopAppenders() method before stopping AsyncAppender. Thanks to Geng Yuanzhe.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2906" rel="nofollow">LOG4J2-2906</a>:<br /> Fix UnsupportedOperationException when initializing the Log4j2CloudConfigLoggingSystem. Thanks to Stephen Joyner.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2908" rel="nofollow">LOG4J2-2908</a>:<br /> Move Spring Lookup and Spring PropertySource to its own module.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2910" rel="nofollow">LOG4J2-2910</a>:<br /> Log4j-web should now stores the servlet context as a map entry instead of in the single external context field.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2822" rel="nofollow">LOG4J2-2822</a>:<br /> Javadoc link in ThreadContext description was incorrect.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2894" rel="nofollow">LOG4J2-2894</a>:<br /> Fix spelling error in log message.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2901" rel="nofollow">LOG4J2-2901</a>:<br /> Missing configuration files should be ignored when creating a composite configuration.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2883" rel="nofollow">LOG4J2-2883</a>:<br /> When using DirectFileRolloverStrategy the file pattern was not being recalculated on<br /> size based rollover after a time based rollover had occurred.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2875" rel="nofollow">LOG4J2-2875</a>:<br /> Rollover was failing to create directories when using a DirectFileeRolloverStrategy.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2859" rel="nofollow">LOG4J2-2859</a>:<br /> Fixed typos where mergeFactory should be mergeStrategy. Thanks to Yanming Zhou.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2832" rel="nofollow">LOG4J2-2832</a>:<br /> Correct class name printed in error message in RollingFileAppender. Thanks to Benjamin Asbach.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2882" rel="nofollow">LOG4J2-2882</a>:<br /> Support java.util.logging filters when using that API. Thanks to Emmanuel Bourg.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2880" rel="nofollow">LOG4J2-2880</a>:<br /> Create StackWalker benchmark. Revert back to StackWalker.walk based on benchmark results.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2867" rel="nofollow">LOG4J2-2867</a>:<br /> Obtain ContextDataProviders asynchronously.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2877" rel="nofollow">LOG4J2-2877</a>:<br /> Determine the container id to obtain container and image information.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2844" rel="nofollow">LOG4J2-2844</a>:<br /> Null pointer exception when no network interfaces are available.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2895" rel="nofollow">LOG4J2-2895</a>:<br /> Fix potential deadlock in asynchronous logging by avoiding blocking for queue space on Log4jThreads</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2837" rel="nofollow">LOG4J2-2837</a>:<br /> Disruptor and JUL no longer recursively start the AsyncLoggerDisruptor<br /> resulting in an extra disruptor background thread constantly waiting.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2867" rel="nofollow">LOG4J2-2867</a>:<br /> RingBufferLogEventTranslator uses a static ContextDataInjector instead of initializing a new object<br /> on each thread.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2898" rel="nofollow">LOG4J2-2898</a>:<br /> Avoid initializing volatile fields with default values. Thanks to Turbanov Andrey.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2899" rel="nofollow">LOG4J2-2899</a>:<br /> Fix log4j-1.2-api LogEventWrapper threadId and priority accessors when called multiple times.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2939" rel="nofollow">LOG4J2-2939</a>:<br /> Fix NPE in MDCContextMap on 'contains' and 'isEmpty' invocations. Thanks to Constantin Hirsch.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2954" rel="nofollow">LOG4J2-2954</a>:<br /> Prevent premature garbage collection of shutdown hooks in DefaultShutdownCallbackRegistry. Thanks to Henry Tung.</li> </ul> <h3><a id="user-content-changes" class="anchor" aria-hidden="true" href="#changes"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Changes</h3> <ul> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2889" rel="nofollow">LOG4J2-2889</a>:<br /> Add date pattern support for HTML layout. Thanks to Geng Yuanzhe.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow">LOG4J2-2892</a>:<br /> Allow GelfLayout to produce newline delimited events. Thanks to Jakub Lukes.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update MongoDB tests to require Java 8 unconditionally now that Log4j requires Java 8.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update mongodb3.version from 3.12.1 to 3.12.6.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update com.fasterxml.jackson.* 2.10.2 -> 2.11.0.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update org.apache.activemq:activemq-broker 5.15.11 -> 5.16.0.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update org.apache.commons:commons-compress 1.19 -> 1.20.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update org.apache.commons:commons-csv 1.7 -> 1.8.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update org.apache.commons:commons-lang3 3.9 -> 3.10.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update org.codehaus.groovy:* 2.5.6 -> 3.0.5.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update tests junit:junit 4.12 -> 4.13.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update tests commons-io:commons-io 2.6 -> 2.7.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update jackson 2.11.0 -> 2.11.2.</li> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2892" rel="nofollow"></a>:<br /> Update tests hsqldb 2.5.0 -> 2.5.1.</li> </ul> <h3><a id="user-content-removed" class="anchor" aria-hidden="true" href="#removed"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"> <path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>Removed</h3> <ul> <li><a href="https://issues.apache.org/jira/browse/LOG4J2-2851" rel="nofollow">LOG4J2-2851</a>:<br /> Drop log4j-mongodb2 module.</li> </ul> <hr> <p>Apache Log4j 2.14.0 requires a minimum of Java 8 to build and run. Log4j 2.12.1 is the last release to support<br /> Java 7.</p> <p>For complete information on Apache Log4j 2, including instructions on how to submit bug<br /> reports, patches, or suggestions for improvement, see the Apache Apache Log4j 2 website:</p> <p><a href="https://logging.apache.org/log4j/2.x/" rel="nofollow">https://logging.apache.org/log4j/2.x/</a></p>