<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<document xmlns="http://maven.apache.org/changes/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
  <properties>
    <title>Changes</title>
  </properties>
  <body>
    <!-- NOTE: the text node in an action element is interpreted as Markdown in the release notes! -->
    <!-- The "type" attribute can have the following values:
         - "add" - New Feature
         - "fix" - Fixed Bug
         - "update" - Change
         - "remove" - Removed
    -->
    <release version="2.12.1" date="2019-08-06" description="GA Release 2.12.1">
      <action issue="LOG4J2-1946" dev="rgoers" type="fix" due-to="Igor Perelyotov">
        Allow file renames to work when files are missing from the sequence.
      </action>
      <action issue="LOG4J2-2650" dev="rgoers" type="fix" due-to="Mattia Bertorello">
        Support emulating a MAC address when using ipv6.
      </action>
      <action issue="LOG4J2-2366" dev="rgoers" type="fix">
        Remove references to LoggerContext when it is shutdown.
      </action>
      <action issue="LOG4J2-2556" dev="rgoers" type="update">
        Make Log4j Core optional for Log4j 1.2 API.
      </action>
      <action issue="LOG4J2-2644" dev="rgoers" type="fix">
        Improve the performance of capturing location information.
      </action>
      <action issue="LOG4J2-2646" dev="ggregory" type="update">
        Update MongoDB 3 driver from 3.10.1 to 3.10.2.
      </action>
      <action issue="LOG4J2-2657" dev="ggregory" type="update">
        Improve exception messages in the JDBC appender.
      </action>
      <action issue="LOG4J2-2658" dev="ckozak" type="fix">
        AbstractAction.reportException records a warning to the status logger, providing more information when file
        based appenders fail to compress rolled data asynchronously.
      </action>
      <action issue="LOG4J2-2659" dev="ckozak" type="fix">
        AbstractAction handles and records unchecked RuntimeException and Error in addition to IOException.
      </action>
      <action issue="LOG4J2-2660" dev="ggregory" type="update">
        Retry when JDBC throws a java.sql.SQLTransactionRollbackException in commitAndClose().
      </action>
      <action issue="LOG4J2-2667" dev="ggregory" type="fix" due-to="Gary Gregory, Edith Chui">
        "Values not bound to statement" when using JDBC appender, appender does not respect bufferSize="0".
      </action>
    </release>
    <release version="2.12.0" date="2019-06-23" description="GA Release 2.12.0">
      <action issue="LOG4J2-2547" dev="rgoers" type="fix">
        RollingRandomAccessFileAppender error message referenced incorrect class name.
      </action>
      <action issue="LOG4J2-2616" dev="rgoers" type="fix">
        Restore constructor to ThrowablePatternConverter that was removed in 2.8.2.
      </action>
      <action issue="LOG4J2-2622" dev="rgoers" type="fix">
        StructuredDataId was ignoring maxLength atribute.
      </action>
      <action issue="LOG4J2-2636" dev="rgoers" type="fix">
        RFC5424Layout was not properly setting default Structured Element id for the MDC
      </action>
      <action issue="LOG4J2-2403" dev="rgoers" type="add" due-to="hupfdule">
        Allow zero padding the counter of a RollingFileAppender.
      </action>
      <action issue="LOG4J2-2427" dev="rgoers" type="add" due-to="Rimaljit Kaur">
        Add filter that will match events when no marker is present.
      </action>
      <action issue="LOG4J2-1143" dev="rgoers" type="fix" due-to="Pascal Heinrich">
        Lookups were not found if the plugin key was not lowercase.
      </action>
      <action issue="LOG4J2-2406" dev="rgoers" type="add">
        Add reconfiguration methods to Configurator.
      </action>
      <action issue="LOG4J2-1852" dev="rgoers" type="fix" due-to="Tanner Altares">
        Locate plugins within a Jar using a URL Connection.
      </action>
      <action issue="LOG4J2-2610" dev="rgoers" type="fix">
        Explicitly set file creation time.
      </action>
      <action issue="LOG4J2-2561" dev="rgoers" type="fix" due-to="Ulrich Enslin">
        JEP223 version detection fix for JDK 9 and up.
      </action>
      <action issue="LOG4J2-1103" dev="rgoers" type="fix" due-to="Seán Dunne">
        FailoverAppender was failing with ERROR appender Failover has no parameter that matches element Failovers.
      </action>
      <action issue="LOG4J2-2602" dev="rgoers" type="fix">
        Update file time when size based triggering policy is used without a time-based triggering policy.
      </action>
      <action issue="LOG4J2-2597" dev="rgoers" type="fix">
        Throw better exception message when both log4j-slf4j-impl and log4j-to-slf4j are present.
      </action>
      <action issue="LOG4J2-913" dev="rgoers" type="add">
        Add support for reconfiguration via HTTP(S), Docker, and Spring Cloud Configuration.
      </action>
      <action issue="LOG4J2-2586" dev="rgoers" type="add">
        TCP Appender should support a host name resolving to multiple IP addresses.
      </action>
      <action issue="LOG4J2-2559" dev="ggregory" type="fix" due-to="Li Lei, Gary Gregory">
        NullPointerException in JdbcAppender.createAppender().
      </action>
      <action dev="ggregory" type="update" due-to="Gary Gregory">
        Update tests from H2 1.4.197 to 1.4.199.
      </action>
      <action issue="LOG4J2-2570" dev="ggregory" type="update" due-to="Gary Gregory">
        Update Jackson from 2.9.7 to 2.9.8.
      </action>
      <action issue="LOG4J2-2574" dev="ggregory" type="update" due-to="Gary Gregory">
        Update MongoDB 3 module driver from 3.9.0 to 3.10.1.
      </action>
      <action issue="LOG4J2-2592" dev="ggregory" type="fix" due-to="Dávid Kaya, Gary Gregory">
        StackOverflowException when server not reachable with SocketAppender.
      </action>
      <action issue="LOG4J2-2337" dev="ggregory" type="add" due-to="Arvind Sahare, Patrice Ferrot">
        Allow custom end-of-line with JsonLayout.
      </action>
      <action issue="LOG4J2-2598" dev="ckozak" type="add" due-to="Carter Kozak">
        GZIP compression on rollover supports configurable compression levels.
      </action>
      <action issue="LOG4J2-2598" dev="ggregory" type="fix" due-to="Gary Gregory">
        java.lang.StackOverflowError at org.apache.logging.log4j.junit.AbstractExternalFileCleaner.println(AbstractExternalFileCleaner.java:169).
      </action>
      <action issue="LOG4J2-2564" dev="ckozak" type="fix">
        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.
      </action>
      <action issue="LOG4J2-2611" dev="ckozak" type="add">
        AsyncQueueFullPolicy configuration short values "Default" and "Discard" are case insensitive to avoid confusion.
      </action>
      <action issue="LOG4J2-2612" dev="ggregory" type="fix">
        NullPointerException at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.writeInternal(JdbcDatabaseManager.java:803).
      </action>
      <action issue="LOG4J2-2618" dev="ggregory" type="fix">
        Possible ClassCastException in org.apache.logging.log4j.core.script.ScriptManager.ScriptManager(Configuration, WatchManager)
      </action>
      <action issue="LOG4J2-2619" dev="ggregory" type="update">
        Update Jackson from 2.9.8 to 2.9.9.
      </action>
      <action issue="LOG4J2-2631" dev="ckozak" type="fix">
        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.
      </action>
      <action issue="LOG4J2-2629" dev="ckozak" type="fix">
        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.
      </action>
      <action issue="LOG4J2-2606" dev="ckozak" type="fix">
        Asynchronous logging when the queue is full no longer results in heavy CPU utilization and low throughput.
      </action>
      <action issue="LOG4J2-2634" dev="ckozak" type="update">
        Refactor several AsyncLogger methods below the 35 byte threshold for inlining.
      </action>
      <action issue="LOG4J2-2634" dev="ggregory" type="add">
        Add and use method org.apache.logging.log4j.message.MapMessage.toKey(String) for simpler subclasses.
      </action>
    </release>
    <release version="2.11.2" date="2019-02-04" description="GA Release 2.11.2">
      <action issue="LOG4J2-2500" dev="rgoers" type="fix">
        Document that Properties element must be the first configuration element.
      </action>
      <action issue="LOG4J2-2543" dev="rgoers" type="fix" due-to="Dermot Hardy">
        Add Log4j-to-SLF4J to BOM pom.xml.
      </action>
      <action issue="LOG4J2-2061" dev="rgoers" type="fix">
        Use the file pattern as the FileManager "name" when no filename is present.
      </action>
      <action issue="LOG4J2-2009" dev="rgoers" type="fix">
        Expose LoggerContext.setConfiguration as a public method.
      </action>
      <action issue="LOG4J2-2542" dev="rgoers" type="fix">
        CronTriggeringPolicy was not rolling properly, especially when used with the SizeBasedTriggeringPolicy.
      </action>
      <action issue="LOG4J2-2266" dev="rgoers" type="fix">
        Load PropertySources from any accessible ClassLoader. Hide any exceptions that may occur accessing a PropertySource.
      </action>
      <action issue="LOG4J2-1570" dev="rgoers" type="fix">
        Logging with a lambda expression with a method call that also logs would cause logs within method call to reference line num and method name of the parent method.
      </action>
      <action issue="LOG4J2-1576" dev="rgoers" type="update">
        Switch from CLIRR to RevAPI for detecting API changes.
      </action>
      <action issue="LOG4J2-2485" dev="rgoers" type="fix" due-to="Giovanni Matteo Fumarola">
        SizeBasedTriggeringPolicy was not honored when using the DirectWriteRolloverStrategy if the machine restarts.
      </action>
      <action issue="LOG4J2-1906" dev="rgoers" type="fix">
        Direct write was creating files with the wrong date/time.
      </action>
      <action issue="LOG4J2-2453" dev="rgoers" type="fix" due-to="theit">
        Add Log4j-slf4j18-impl dependency to bom pom.
      </action>
      <action issue="LOG4J2-2515" dev="rgoers" type="fix" due-to="MakarovS">
        Configuration documentation referenced incorrect method name.
      </action>
      <action issue="LOG4J2-2514" dev="rgoers" type="fix" due-to="smilebrian0515">
        Make Strings.toRootUpperCase a static method so it can be accessed.
      </action>
      <action issue="LOG4J2-1571" dev="rgoers" type="fix" due-to="torbenmoeller">
        Fixed Appenders section in Extending Log4j.
      </action>
      <action issue="LOG4J2-2391" dev="ckozak" type="update">
        Improve exception logging performance. ThrowableProxy construction uses a faster
        method to discover the current stack trace. ThrowablePatternConverter and
        ExtendedThrowablePatternConverter default configurations no longer allocate
        an additional buffer for stack trace contents.
      </action>
      <action issue="LOG4J2-2397" dev="ggregory" type="fix" due-to="EckelDong">
        Predeployment of PersistenceUnit that using Log4j as session logger failed (#198).
      </action>
      <action issue="LOG4J2-2365" dev="ckozak" type="fix" due-to="Eugene Zimichev">
        NameAbbreviator correctly abbreviates first fragments (#188).
      </action>
      <action issue="LOG4J2-2201" dev="ckozak" type="fix">
        Fix memory leak in ReusableParameterizedMessage.
      </action>
      <action issue="LOG4J2-2363" dev="ckozak" type="fix" due-to="Brian Laub">
        ReusableObjectMessage parameter is properly passed to appenders (#203).
      </action>
      <action issue="LOG4J2-2418" dev="ggregory" type="fix" due-to="Jonas Rutishauser">
        NullPointerException when closing never used RollingRandomAccessFileAppender.
      </action>
      <action issue="LOG4J2-2422" dev="ggregory" type="fix" due-to="rswart, Gary Gregory">
        Handle some unchecked exceptions while loading plugins.
      </action>
      <action issue="LOG4J2-2441" dev="ckozak" type="fix">
        Setting a null ErrorHandler on AbstractAppender is not allowed and will no-op as expected.
      </action>
      <action issue="LOG4J2-2444" dev="ckozak" type="fix">
        ErrorHandler is invoked with a LogEvent and Throwable when possible, where previously only a string was used.
      </action>
      <action issue="LOG4J2-2447" dev="ggregory" type="update">
        Let the NullAppender default its name to "null".
      </action>
      <action issue="LOG4J2-2468" dev="ggregory" type="update">
        Update Jackson from 2.9.6 to 2.9.7.
      </action>
      <action issue="LOG4J2-2469" dev="ggregory" type="update">
        Update Apache Commons Compress from 1.17 to 1.18.
      </action>
      <action issue="LOG4J2-2470" dev="ggregory" type="update">
        Update Apache Commons CSV from 1.5 to 1.6.
      </action>
      <action issue="LOG4J2-2471" dev="ggregory" type="update">
        Update javax.mail from 1.6.1 to 1.6.2.
      </action>
      <action issue="LOG4J2-2472" dev="ggregory" type="update">
        Update mongo-java-driver 3 from 3.8.0 to 3.8.2.
      </action>
      <action issue="LOG4J2-2413" dev="ggregory" type="fix" due-to="Andres Luuk, Gary Gregory">
        Exceptions are added to all columns when a JDBC Appender's ColumnMapping uses a Pattern.
      </action>
      <action issue="LOG4J2-2466" dev="ggregory" type="fix" due-to="Paolo Bonanomi, Gary Gregory">
        ColumnMapping literal not working.
      </action>
      <action issue="LOG4J2-2478" dev="ckozak" type="fix" due-to="Diego Elias Costa">
        AbstractStringLayoutStringEncodingBenchmark returns the computed variables on each benchmark to avoid DCE.
      </action>
      <action issue="LOG4J2-2134" dev="ggregory" type="fix" due-to="David del Amo Mateos, Gary Gregory">
      	StackOverflowError at AwaitCompletionReliabilityStrategy.
      </action>
      <action issue="LOG4J2-2481" dev="ggregory" type="fix">
      	Avoid NullPointerExceptions in org.apache.logging.log4j.core.config.AbstractConfiguration for null arguments.
      </action>
      <action issue="LOG4J2-2457" dev="ggregory" type="fix" due-to="Heiko Schwanke, Gary Gregory">
      	RollingRandomAccessFileManager ignores new file patterns from programmatic reconfiguration.
      </action>
      <action issue="LOG4J2-2482" dev="ggregory" type="fix" due-to="Rob Gansevles">
        BasicContextSelector cannot be used in a OSGI application.
      </action>
      <action issue="LOG4J2-2476" dev="ggregory" type="fix" due-to="Al Bundy">
        org.apache.log4j.SimpleLayout and ConsoleAppender missing in log4j-1.2-api.
      </action>
      <action issue="LOG4J2-2489" dev="ggregory" type="update">
        JDBC Appender should release parameter resources ASAP.
      </action>
      <action issue="LOG4J2-2491" dev="ggregory" type="update">
        Allow all Appenders to optionally carry a Property array.
      </action>
      <action issue="LOG4J2-2497" dev="ggregory" type="fix">
        JmsAppender reconnectIntervalMillis cannot be set from a configuration file.
      </action>
      <action issue="LOG4J2-2499" dev="ggregory" type="fix">
        JMS Appender may throw a NullPointerException when JMS is not up while the Appender is starting.
      </action>
      <action issue="LOG4J2-2496" dev="ggregory" type="add">
        JDBC Appender should reconnect to the database when a connection goes stale.
      </action>
      <action issue="LOG4J2-2405" dev="ggregory" type="update" due-to="Marco Herrn">
        Better handling of %highlight pattern when using jul-bridge.
      </action>
      <action issue="LOG4J2-2503" dev="ggregory" type="update">
        Update MongoDB driver from 3.8.2 to 3.9.0 for log4j-mongodb3 module.
      </action>
      <action issue="LOG4J2-2505" dev="ggregory" type="add">
        Let JDBC PoolingDriverConnectionSource with Apache Commons DBCP configure a PoolableConnectionFactory.
      </action>
      <action issue="LOG4J2-2508" dev="ggregory" type="fix">
      	JDBC Appender fails when using both parameter, source, and literal ColumnMapping elements.
      </action>
      <action issue="LOG4J2-2509" dev="ggregory" type="add">
        Allow a JDBC Appender to truncate strings to match a table's metadata column length limit.
      </action>
      <action issue="LOG4J2-1246" dev="ggregory" type="add">
        PatternLayout %date conversion pattern should render time zone designator for ISO-ISO8601.
      </action>
      <action issue="LOG4J2-2527" dev="ckozak" type="fix">
        Prevent ConcurrentModificationException while iterating over ListAppender events.
      </action>
      <action issue="LOG4J2-2522" dev="ckozak" type="fix" due-to="Adam Lesiak">
        Fix regression using MapMessageLookup.lookup with MapMessages that do not implement StringMapMessage.
      </action>
      <action issue="LOG4J2-2530" dev="ckozak" type="fix" due-to="Travis Spencer">
        Generalize checks using MapMessage implementations with do not extend StringMapMessage.
        Introduce new JAVA_UNQUOTED MapMessage format type based on the JAVA formatting, but without
        quoted values.
      </action>
      <action issue="LOG4J2-2533" dev="ckozak" type="fix" due-to="Michail Prusakov">
        Fix a regression introduced by LOG4J2-2301 in 2.11.1 allowing allocation to occur in AsyncLoggerConfig.
      </action>
    </release>
    <release version="2.11.1" date="2018-07-22" description="GA Release 2.11.1">
      <action issue="LOG4J2-2389" dev="rgoers" type="fix" due-to="Liu Wen">
        ThrowableProxy was saving and retrieving cache entries using different keys.
      </action>
      <action issue="LOG4J2-2316" dev="rgoers" type="fix">
        If root LoggerConfig does not have a Level return ERROR.
      </action>
      <action issue="LOG4J2-2390" dev="rgoers" type="fix" due-to="anton-balaniuc">
        Fix broken links in log4j web documentation.
      </action>
      <action issue="LOG4J2-1721" dev="rgoers" type="update" due-to="Phokham Nonava">
        Allow composite configuration for context parameter.
      </action>
      <action issue="LOG4J2-2343" dev="rgoers" type="fix" due-to="Raymond Augé">
        The OSGi Activator specified an incorrect version.
      </action>
      <action issue="LOG4J2-2305" dev="rgoers" type="fix" due-to="Björn Kautler">
        Make java.util.ServiceLoader properly work in OSGi by using the Service Loader Mediator Specification.
      </action>
      <action issue="LOG4J2-2305" dev="rgoers" type="fix">
        Split the SLF4J binding into 2 implementations - one for SLF4J 1.7.x and one for SLF4J 1.8+.
      </action>
      <action issue="LOG4J2-2268" dev="rgoers" type="fix" due-to="Tilman Hausherr">
        Improve plugin error message when elements are missing.
      </action>
      <action issue="LOG4J2-2283" dev="ggregory" type="fix" due-to="Vishnu Priya Matha">
        ParserConfigurationException when using Log4j with oracle.xml.jaxp.JXDocumentBuilderFactory.
      </action>
      <action issue="LOG4J2-2300" dev="ggregory" type="fix">
        PoolingDriverConnectionSource does not take into account properties, user name, and password.
      </action>
      <action issue="LOG4J2-2302" dev="ggregory" type="update">
        Status logger should show the Log4j name and version when initializing itself.
      </action>
      <action issue="LOG4J2-2304" dev="ggregory" type="update" due-to="wumengsheng">
        Log4j2 2.8.2 JMX unregister NullPointerException.
      </action>
      <action issue="LOG4J2-2311" dev="ggregory" type="update">
      	Update Jackson from 2.9.4 to 2.9.5.
      </action>
      <action issue="LOG4J2-2313" dev="ggregory" type="update">
      	Update LMAX Disruptor from 3.3.7 to 3.4.2.
      </action>
      <action issue="LOG4J2-548" dev="ggregory" type="update" due-to="Shehata, Paresh Varke, Eric Victorson, Martin Laforet">
      	Log4j 2.0 ERROR "Could not search jar" with JBoss EAP 6.2.
      </action>
      <action issue="LOG4J2-2307" dev="ckozak" type="fix">
        MutableLogEvent and RingBufferLogEvent message mementos retain the original format string.
      </action>
      <action issue="LOG4J2-2032" dev="ckozak" type="fix" due-to="Kostiantyn Shchepanovskyi">
        Curly braces in parameters are not treated as placeholders.
      </action>
      <action issue="LOG4J2-2317" dev="ckozak" type="fix">
        MutableLogEvent.getNonNullImmutableMessage and Log4jLogEvent.makeMessageImmutable retain format and parameters.
      </action>
      <action issue="LOG4J2-2318" dev="ckozak" type="fix">
        Messages are no longer mutated when the asynchronous queue is full. A warning is logged to the status logger instead.
      </action>
      <action issue="LOG4J2-2320" dev="ckozak" type="fix">
        Fix NPE in AbstractLogger when another exception is thrown, masking the root cause.
      </action>
      <action issue="LOG4J2-2321" dev="ckozak" type="fix">
        AsyncLogger uses the correct level when unspecified. This provides parity between AsyncLogger and Logger.
      </action>
      <action issue="LOG4J2-2322" dev="ckozak" type="fix">
        Custom ContextSelector implementations which select an AsyncLoggerContext disable LoggerConfig.includeLocation
        by default for parity with AsyncLoggerContextSelector.
      </action>
      <action issue="LOG4J2-2269" dev="ckozak" type="fix">
        MutableLogEvent references to other objects are cleared after each use.
        Fix a memory leak causing references to parameters to be held after synchronous logging with thread locals enabled.
      </action>
      <action issue="LOG4J2-2328" dev="ggregory" type="update">
        Update JAnsi from 1.17 to 1.17.1.
      </action>
      <action issue="LOG4J2-2301" dev="ckozak" type="fix">
        Mixed async loggers no longer forget parameter values, providing some appenders with an array of nulls.
      </action>
      <action issue="LOG4J2-2331" dev="ckozak" type="fix" due-to="Mike Baranski">
        RollingFileManager debug logging avoids string concatenation and errant braces in favor of parameterized logging.
      </action>
      <action issue="LOG4J2-2333" dev="ckozak" type="fix">
        Handle errors thrown in default disruptor ExceptionHandler implementations to avoid killing background threads.
      </action>
      <action issue="LOG4J2-2334" dev="ggregory" type="fix">
        Add API org.apache.logging.log4j.core.appender.AsyncAppender.getQueueSize().
      </action>
      <action issue="LOG4J2-2336" dev="ckozak" type="fix">
        Remove duplicate hyphen from the AsyncLoggerConfig background thread name.
      </action>
      <action issue="LOG4J2-2347" dev="ggregory" type="fix">
        Update Apache Commons Compress from 1.16.1 to 1.17.
      </action>
      <action issue="LOG4J2-2351" dev="ckozak" type="update">
        Added AbstractLogEvent.getMutableInstant to allow the MutableInstant instance to be modified by classes extending AbstractLogEvent.
      </action>
      <action issue="LOG4J2-2352" dev="ckozak" type="fix">
        RingBufferLogEvent memento messages provide the expected format string, and no longer attempt to substitute parameters into curly braces in parameter toString values.
        Both RingBufferLogEvent and MutableLogEvent memento implementations memoize results to avoid rebuilding formatted string values.
      </action>
      <action issue="LOG4J2-2355" dev="ckozak" type="fix" due-to="Henrik Brautaset Aronsen">
        PropertiesUtil ignores non-string system properties. Fixes a NoClassDefFoundError initializing StatusLogger
        caused by an NPE while initializing the static PropertiesUtil field.
      </action>
      <action issue="LOG4J2-2357" dev="ggregory" type="update">
        Update Jackson from 2.9.5 to 2.9.6.
      </action>
      <action issue="LOG4J2-2358" dev="ggregory" type="update">
        Update Kafka client from 1.0.0 to 1.1.0.
      </action>
      <action issue="LOG4J2-2362" dev="ckozak" type="fix">
        Fixed a memory leak in which ReusableObjectMessage would hold a reference to the most recently logged object.
      </action>
      <action issue="LOG4J2-2312" dev="ckozak" type="fix">
        Jackson layouts used with AsyncLoggerContextSelector output the expected format rather than only a JSON string of the message text.
      </action>
      <action issue="LOG4J2-2364" dev="ckozak" type="fix">
        Fixed a memory leak in which ReusableParameterizedMessage would hold a reference to the most recently
        logged throwable and provided varargs array.
      </action>
      <action issue="LOG4J2-2368" dev="ckozak" type="fix">
        Nested logging doesn't clobber AbstractStringLayout cached StringBuidlers
      </action>
      <action issue="LOG4J2-2373" dev="ckozak" type="fix" due-to="Kevin Meurer">
        StringBuilders.escapeJson implementation runs in linear time. Escaping large JSON strings
        in EncodingPatternConverter and MapMessage will perform significantly better.
      </action>
      <action issue="LOG4J2-2376" dev="ckozak" type="fix" due-to="Kevin Meurer">
        StringBuilders.escapeXml implementation runs in linear time. Escaping large XML strings
        in EncodingPatternConverter and MapMessage will perform significantly better.
      </action>
      <action issue="LOG4J2-2377" dev="ggregory" type="fix" due-to="Mirko Rzehak, Gary Gregory">
        NullPointerException in org.apache.logging.log4j.util.LoaderUtil.getClassLoaders() when using Bootstrap class loader.
      </action>
      <action issue="LOG4J2-2382" dev="ggregory" type="fix">
        Update Mongodb 3 driver from 3.6.3 to 3.8.0.
      </action>
      <action issue="LOG4J2-2384" dev="ggregory" type="update">
        Update Kafka client from 1.1.0 to 1.1.1.
      </action>
      <action issue="LOG4J2-2385" dev="ggregory" type="update">
        Update Groovy from 2.4.13 to 2.5.1.
      </action>
      <action issue="LOG4J2-2386" dev="ggregory" type="update">
        Update optional Apache Commons DBCP from 2.2.0 to 2.4.0.
      </action>
      <action issue="LOG4J2-2388" dev="ggregory" type="fix" due-to="Failled">
        Thread indefinitely blocked when logging a message in an interrupted thread.
      </action>
    </release>
    <release version="2.11.0" date="2018-03-11" description="GA Release 2.11.0">
      <action issue="LOG4J2-2104" dev="rgoers" type="fix">
        LoaderUtil was not looping properly over classloaders.
      </action>
      <action issue="LOG4J2-1976" dev="rgoers" type="fix">
        Revert OSGi API version to 4.3.1.
      </action>
      <action issue="LOG4J2-2273" dev="rpopma" type="update" due-to="Bruno P. Kinoshita">
        Documentation fix in manual page for custom configurations.
      </action>
      <action issue="LOG4J2-2252" dev="rpopma" type="update" due-to="Carter Kozak">
        Reusable LogEvents now pass the original format string to downstream components like layouts and filters.
      </action>
      <action issue="LOG4J2-2253" dev="rpopma" type="add" due-to="Carter Kozak">
        Add API to enable iterating over message parameters without creating temporary objects.
      </action>
      <action issue="LOG4J2-2271" dev="rgoers" type="fix">
        Move module-info.class to META-INF/versions/9 directory.
      </action>
      <action issue="LOG4J2-2254" dev="rgoers" type="fix">
        Incorrect automatics module name header was being included in manifests.
      </action>
      <action issue="LOG4J2-2247" dev="rgoers" type="fix">
        NullPointerException would occur when header was provided to a Layout on RollingRandingAccessFileAppender
        with DirectWriteRolloverStrategy.
      </action>
      <action issue="LOG4J2-2250" dev="rpopma" type="update">
        The internal status logger timestamp format is now configurable with system property `log4j2.StatusLogger.DateFormat`.
      </action>
      <action issue="LOG4J2-2236" dev="rpopma" type="update">
        Removed unnecessary dependency on jcommander since Log4j uses embedded picocli since 2.9.
      </action>
      <action issue="LOG4J2-1883" dev="rpopma" type="add" due-to="Anthony Maire">
        Added support for precise (micro and nanosecond) timestamps when running on Java 9. A limited number of precise %d date formats are supported with PatternLayout. POTENTIAL BREAKING CHANGE: The XML, JSON and YAML formats have changed: they no longer have the "timeMillis" attribute and instead have an "Instant" element with "epochSecond" and "nanoOfSecond" attributes.
      </action>
      <action issue="LOG4J2-2190" dev="mikes" type="add" due-to="Franz Wong">
        Output JSON object for ObjectMessage in JsonLayout.
      </action>
      <action issue="LOG4J2-2191" dev="rpopma" type="add">
        Made log4j-core a multi-release ("multi-version") jar, added log4j-core-java9 module.
      </action>
      <action issue="LOG4J2-2129" dev="rgoers" type="fix" due-to="Blazej Bucko">
        Log4j2 throws NoClassDefFoundError in Java 9 in java.util.ServiceLoader.
      </action>
      <action issue="LOG4J2-2158" dev="rpopma" type="fix" due-to="Björn Kautler">
        Fixed bug where ThreadContext map was cleared, resulting in entries being only available for one log event.
      </action>
      <action issue="LOG4J2-2002" dev="mikes" type="fix" due-to="Paul Burrowes">
        Avoid null attribute values in DefaultConfigurationBuilder.
      </action>
      <action issue="LOG4J2-2175" dev="mikes" type="fix" due-to="Behrang Saeedzadeh">
        Fix typo in Property Substitution docs.
      </action>
      <action issue="LOG4J2-2163" dev="rgoers" type="fix">
        Allow SortedArrayStringMap to be filtered upon deserialization. Fix build error in Java 9 when
        compiling log4j-core test classes.
      </action>
      <action issue="LOG4J2-2157" dev="ggregory" type="fix" due-to="Malte Skoruppa">
        Don't create exit message in traceExit(R) when logging is disabled.
      </action>
      <action issue="LOG4J2-2123" dev="rgoers" type="fix" due-to="Jacob Tolar">
        DefaultMergeStrategy did not merge filters on loggers correctly.
      </action>
      <action issue="LOG4J2-2146" dev="rgoers" type="update">
        Update version of maven bundle plugin to 3.4.0. Convert bundle plugin error to a warning.
      </action>
      <action issue="LOG4J2-2215" dev="rpopma" type="update">
        Reduce compiler warnings in log4j-api.
      </action>
      <action issue="LOG4J2-2143" dev="mikes" type="add">
        Add missing converters to PatternLayout.
      </action>
      <action issue="LOG4J2-2160" dev="ggregory" type="add">
        Add API org.apache.logging.log4j.core.lookup.Interpolator.getStrLookupMap().
      </action>
      <action issue="LOG4J2-2127" dev="rpopma" type="update" due-to="Carter Kozak">
        Removed unnecessary threadlocal StringBuilder field from MdcPatternConverter.
      </action>
      <action issue="LOG4J2-2126" dev="rpopma" type="fix" due-to="Oleg Kalnichevski">
        Removed compile-time dependency on Java Management APIs from Log4J API module to improve compatibility with Android Platform which does not support JMX extensions.
      </action>
      <action issue="LOG4J2-2194" dev="rpopma" type="update">
        Require Java 9 to compile the log4j-perf module to allow benchmarking with Java 9 APIs.
      </action>
      <action issue="LOG4J2-2193" dev="rpopma" type="update">
        Update JMH to version 1.19 from 1.1.1.
      </action>
      <action issue="LOG4J2-2132" dev="ggregory" type="update">
        Update ZeroMQ's jeromq from 0.4.2 to 0.4.3.
      </action>
      <action issue="LOG4J2-2165" dev="ggregory" type="update">
        Update Jackson from 2.9.2 to 2.9.3.
      </action>
      <action issue="LOG4J2-2179" dev="ggregory" type="add">
        The MongoDB Appender should use a keys and values for a Log4j MapMessage.
      </action>
      <action issue="LOG4J2-2180" dev="ggregory" type="add">
        Add a MongoDbProvider builder for and deprecate org.apache.logging.log4j.mongodb.MongoDbProvider.createNoSqlProvider().
      </action>
      <action issue="LOG4J2-2181" dev="ggregory" type="add">
        The JDBC Appender should use keys and values from a Log4j MapMessage.
      </action>
      <action issue="LOG4J2-2184" dev="ggregory" type="update">
        Update MongoDB driver from 3.0.4 to 3.6.1.
      </action>
      <action issue="LOG4J2-2185" dev="ggregory" type="add">
        Add a simple JDBC DriverManager-based ConnectionSource that uses JDBC's DriverManager#getConnection(String, String, String).
      </action>
      <action issue="LOG4J2-2197" dev="ggregory" type="update" due-to="Fabrice Daugan">
        Document default property value support.
      </action>
      <action issue="LOG4J2-2198" dev="ggregory" type="update">
        Update MongoDB dependencies from classic to modern.
      </action>
      <action issue="LOG4J2-2186" dev="ggregory" type="add">
        Add a JDBC ConnectionSource that provides pooling through Apache Commons DBCP 2.
      </action>
      <action issue="LOG4J2-2187" dev="ggregory" type="add">
        Add a hook for a Connection Source for a JDBC Appender to release its resources.
      </action>
      <action issue="LOG4J2-2203" dev="ggregory" type="add">
        Add org.apache.logging.log4j.core.util.WatchManager#unwatch(File).
      </action>
      <action issue="LOG4J2-2204" dev="ggregory" type="update">
        org.apache.logging.log4j.core.util.WatchManager.getWatchers() should pre-allocate its new Map.
      </action>
      <action issue="LOG4J2-2206" dev="ggregory" type="add">
        Add method org.apache.logging.log4j.core.util.WatchManager.reset(File) and reset().
      </action>
      <action issue="LOG4J2-2208" dev="ggregory" type="add">
        Add debug logging to org.apache.logging.log4j.mongodb.MongoDbConnection.
      </action>
      <action issue="LOG4J2-2209" dev="ggregory" type="update">
        Rename existing MongoDb plugin and related artifacts from MongoDb to MongoDb2.
      </action>
      <action issue="LOG4J2-2210" dev="ggregory" type="update" due-to="Björn Kautler">
        Fix error log message for Script which says ScriptFile instead.
      </action>
      <action issue="LOG4J2-2212" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
        Unnecessary contention in CopyOnWriteSortedArrayThreadContextMap.
      </action>
      <action issue="LOG4J2-2213" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
        Unnecessary contention in GarbageFreeSortedArrayThreadContextMap.
      </action>
      <action issue="LOG4J2-2214" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
        Unnecessary contention in DefaultThreadContextMap.
      </action>
      <action issue="LOG4J2-2182" dev="ggregory" type="update" due-to="liwenxian2017, Gary Gregory">
        NullPointerException at org.apache.logging.log4j.util.Activator.loadProvider(Activator.java:81) in log4j 2.10.0.
      </action>
      <action issue="LOG4J2-2202" dev="ggregory" type="update" due-to="Kilian, Gary Gregory">
        MarkerFilter onMismatch invalid attribute in .properties.
      </action>
      <action issue="LOG4J2-2219" dev="ggregory" type="update" due-to="Kilian, Gary Gregory">
        Configuration builder classes should look for "onMismatch", not "onMisMatch".
      </action>
      <action issue="LOG4J2-2205" dev="ggregory" type="update" due-to="Gary Gregory">
        New module log4j-mongodb3: Remove use of deprecated MongoDB APIs and code to the Java driver version 3 API.
      </action>
      <action issue="LOG4J2-2188" dev="ggregory" type="update" due-to="Gary Gregory">
        Split off JPA support into a new module log4j-jpa.
      </action>
      <action issue="LOG4J2-2229" dev="ggregory" type="update" due-to="Gary Gregory">
        Update Jackson from 2.9.3 to 2.9.4.
      </action>
      <action issue="LOG4J2-2243" dev="ggregory" type="update" due-to="Gary Gregory">
        Cannot see or copy all of certain JAnsi exception messages on Windows due to NUL characters.
      </action>
      <action issue="LOG4J2-2245" dev="ggregory" type="update" due-to="Gary Gregory">
        Update Apache Commons Compress from 1.15 to 1.16.1.
      </action>
      <action issue="LOG4J2-2259" dev="ggregory" type="update">
        Update MongoDB 3 module from driver 3.6.1 to 3.6.3.
      </action>
      <action issue="LOG4J2-2260" dev="ggregory" type="update">
        [SMTP] Update javax.mail from 1.6.0 to 1.6.1.
      </action>
      <action issue="LOG4J2-2264" dev="ggregory" type="update">
        Update JAnsi from 1.16 to 1.17.
      </action>
      <action issue="LOG4J2-2270" dev="ggregory" type="fix" due-to="Cyril Martin">
        Strings::join, when called with [null] returns "null" instead of EMPTY.
      </action>
      <action issue="LOG4J2-2276" dev="ggregory" type="fix" due-to="Sean Baxter">
        ConcurrentModificationException from org.apache.logging.log4j.status.StatusLogger.&lt;clinit>(StatusLogger.java:71).
      </action>
      <action issue="LOG4J2-2274" dev="ggregory" type="fix" due-to="Sebastien Lannez">
        Allow EnvironmentPropertySource to run with a SecurityManager that rejects environment variable access.
      </action>
      <action issue="LOG4J2-2279" dev="ggregory" type="fix" due-to="Gary Gregory">
        Allow SystemPropertiesPropertySource to run with a SecurityManager that rejects system property access.
      </action>
    </release>
    <release version="2.10.0" date="2017-11-18" description="GA Release 2.10.0">
      <action issue="LOG4J2-2289" dev="ggregory" type="fix" due-to="Hari Menon">
        XML Schema for DynamicFilterThreshold does not accept multiple KeyValuePairs.
      </action>
      <action issue="LOG4J2-2120" dev="mikes" type="add" due-to="Carter Douglas Kozak">
        Properly escape newlines and other control characters in JSON.
      </action>
      <action issue="LOG4J2-2109" dev="mikes" type="add" due-to="Carter Douglas Kozak">
        Add property to disable message pattern converter lookups.
      </action>
      <action issue="LOG4J2-2112" dev="mikes" type="add" due-to="Carter Douglas Kozak">
        MapMessage should use deep toString for values.
      </action>
      <action issue="LOG4J2-2107" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
        MapMessage supports both StringBuilderFormattable and MultiformatMessage.
      </action>
      <action issue="LOG4J2-2102" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
        MapMessage JSON encoding will escape keys and values.
      </action>
      <action issue="LOG4J2-2101" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
        Non-string value in MapMessage caused ClassCastException.
      </action>
      <action issue="LOG4J2-2103" dev="mikes" type="add">
        XML encoding for PatternLayout.
      </action>
      <action issue="LOG4J2-2114" dev="ggregory" type="add">
        Provide a native Log4j 2 implementation of Eclipse Jetty's org.eclipse.jetty.util.log.Logger.
      </action>
      <action issue="LOG4J2-1203" dev="mikes" type="add" due-to="Robert Turner">
        Allow filtering of line breaks in layout pattern.
      </action>
      <action issue="LOG4J2-2098" dev="rgoers" type="add">
        Add a noop AppenderSkeleton for applications still using Log4j 1.x.
      </action>
      <action issue="LOG4J2-2091" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
        Log4j respects the configured "log4j2.is.webapp" property
      </action>
      <action issue="LOG4J2-2100" dev="ggregory" type="fix">
        LevelMixIn class for Jackson is coded incorrectly
      </action>
      <action issue="LOG4J2-2087" dev="rpopma" type="fix" due-to="Andy Gumbrecht">
        Jansi now needs to be enabled explicitly (by setting system property `log4j.skipJansi` to `false`). To avoid causing problems for web applications, Log4j will no longer automatically try to load Jansi without explicit configuration.
      </action>
      <action issue="LOG4J2-2060" dev="rpopma" type="fix">
        AbstractDatabaseManager should make a copy of LogEvents before holding references to them: AsyncLogger log events are mutable.
      </action>
      <action issue="LOG4J2-2076" dev="mikes" type="update">
        Split up log4j-nosql into one module per appender.
      </action>
      <action issue="LOG4J2-2088" dev="rpopma" type="update">
        Upgrade picocli to 2.0.3 from 0.9.8.
      </action>
      <action issue="LOG4J2-2062" dev="mikes" type="add" due-to="Jorge Sanchez">
        Add possibility of sending the key of a message to Kafka using KafkaAppender.
      </action>
      <action issue="LOG4J2-2056" dev="rgoers" type="add">
        Modularize Log4j-api and make most other log4j jars automatic modules.
      </action>
      <action issue="LOG4J2-1431" dev="mattsicker" type="add">
        Simplify log4j system property naming scheme.
      </action>
      <action issue="LOG4J2-1809" dev="mattsicker" type="add">
        Add global configuration environment SPI.
      </action>
      <action issue="LOG4J2-2025" dev="rgoers" type="update">
        Provide support for overriding the Tomcat Log class in Tomcat 8.5+.
      </action>
      <action issue="LOG4J2-1694" dev="mikes" type="add" due-to="Michal Dvořák">
        Add fields with fixed values to JSON/XML/YAML layouts.
      </action>
      <action issue="LOG4J2-2054" dev="rpopma" type="add">
      Provide ways to configure SSL that avoid plain-text passwords in the log4j configuration. The configuration may
        now specify a system environment variable that holds the password, or the path to a file that holds the password.
      </action>
      <action issue="LOG4J2-2057" dev="rgoers" type="update">
        Support new SLF4J binding mechanism introduced in SLF4J 1.8.
      </action>
      <action issue="LOG4J2-2052" dev="rpopma" type="update">
        Disable thread name caching by default when running on Java 8u102 or later.
      </action>
      <action issue="LOG4J2-2055" dev="rgoers" type="fix">
        If Log4j is used as the Tomcat logging implementation startup might fail if an application also uses Log4j.
      </action>
      <action issue="LOG4J2-1896" dev="rpopma" type="update">
        Update classes in org.apache.logging.log4j.core.net.ssl in APIs from String to a PasswordProvider producing
        char[] for passwords.
      </action>
      <action issue="LOG4J2-2031" dev="rpopma" type="fix">
        Until this change, messages appeared out of order in log file any time when the async logging queue was full.
        With this change, messages are only logged out of order to prevent deadlock when Log4j2 detects recursive
        logging while the queue is full.
      </action>
      <action issue="LOG4J2-2053" dev="ggregory" type="fix">
        Exception java.nio.charset.UnsupportedCharsetException: cp65001 in 2.9.0.
      </action>
      <action issue="LOG4J2-1216" dev="ggregory" type="fix" due-to="Thies Wellpott, Barna Zsombor Klara, GFriedrich">
        Nested pattern layout options broken.
      </action>
      <action issue="LOG4J2-2070" dev="ggregory" type="fix" due-to="Doug Hughes">
        Log4j1XmlLayout does not provide the entire stack trace, it is missing the caused by information.
      </action>
      <action issue="LOG4J2-2036" dev="ggregory" type="fix" due-to="Robert Haycock">
        CompositeConfiguration supports Reconfiguration. PR #115.
      </action>
      <action issue="LOG4J2-2071" dev="ggregory" type="add" due-to="Carter Kozak">
        Add org.apache.logging.log4j.core.config.composite.CompositeConfiguration#toString().
      </action>
      <action issue="LOG4J2-2073" dev="ggregory" type="fix" due-to="Patrick Lucas">
        Log4j-config.xsd should make AppenderRef optional for each Logger element.
      </action>
      <action issue="LOG4J2-2074" dev="ggregory" type="fix">
        The console appender should say why it cannot load JAnsi.
      </action>
      <action issue="LOG4J2-2085" dev="ggregory" type="fix" due-to="István Neuwirth">
        Wrong Apache Commons CSV version referenced in the Javadoc of CsvParameterLayout.
      </action>
      <action issue="LOG4J2-2078" dev="ggregory" type="update">
        Update LMAX disruptor from 3.3.6 to 3.3.7.
      </action>
      <action issue="LOG4J2-2081" dev="ggregory" type="update">
        Update Apache Commons Compress from 1.14 to 1.15.
      </action>
      <action issue="LOG4J2-2089" dev="ggregory" type="update">
        [TagLib] Update servlet-api provided dependency from 2.5 to 3.0.1.
      </action>
      <action issue="LOG4J2-2096" dev="ggregory" type="update">
        Update Apache Kafka kafka-clients from 0.11.0.1 to 1.0.0.
      </action>
      <action issue="LOG4J2-2077" dev="ggregory" type="update">
        Update from Jackson 2.9.1 to 2.9.2.
      </action>
      <action issue="LOG4J2-2117" dev="ggregory" type="update">
        Jackson dependencies for 2.9.2 incorrectly bring in jackson-annotations 2.9.0 instead of 2.9.2.
      </action>
    </release>
    <release version="2.9.1" date="2017-09-17" description="GA Release 2.9.1">
      <action issue="LOG4J2-1988" dev="rpopma" type="fix">
        Prevent ConcurrentModificationException with AsyncLoggerConfig.
      </action>
      <action issue="LOG4J2-1914" dev="rpopma" type="fix">
        Prevent ConcurrentModificationException with AsyncLoggerConfig.
      </action>
      <action issue="LOG4J2-2048" dev="rpopma" type="fix">
        Increase default queue size for AsyncAppender from 128 to 1024.
      </action>
      <action issue="LOG4J2-2035" dev="rpopma" type="fix">
        Fix documentation to clarify disruptor-3.3.4 is now required for async loggers (previously the docs referred to disruptor-3.3.3 which was never released).
      </action>
      <action issue="LOG4J2-2030" dev="rgoers" type="fix">
        Inspect all known ClassLoaders to locate the service provider.
      </action>
      <action issue="LOG4J2-2028" dev="rgoers" type="fix" due-to="Jason Tedor">
        Java 9 StackLocator was not properly skipping the initial stack frames.
      </action>
      <action issue="LOG4J2-2023" dev="ggregory" type="update">
        Use a class' canonical name instead of name to create its logger name.
      </action>
      <action issue="LOG4J2-2026" dev="ggregory" type="fix" due-to="Leon Finker">
        java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature().
      </action>
      <action issue="LOG4J2-2029" dev="ggregory" type="fix" due-to="Fabrizio Cucci">
        Marker examples should not use deprecated flow APIs.
      </action>
      <action issue="LOG4J2-1936" dev="ggregory" type="fix" due-to="Helber Belmiro">
        ClassNotFoundException when making all loggers asynchronous under OSGi environment.
      </action>
      <action issue="LOG4J2-2043" dev="ggregory" type="update">
        Update Jackson from 2.9.0 to 2.9.1 (fix for Java 9.)
      </action>
      <action issue="LOG4J2-2044" dev="ggregory" type="update">
        Update Apache Commons CSV from 1.4 to 1.5.
      </action>
      <action issue="LOG4J2-2045" dev="ggregory" type="update">
        Update javax.mail from 1.5.6 to 1.6.0.
      </action>
      <action issue="LOG4J2-2046" dev="ggregory" type="update">
        Update Apache Commons Compress from 1.13 to 1.14.
      </action>
      <action issue="LOG4J2-2047" dev="ggregory" type="update">
        Update Cassandra driver from 3.1.0 to 3.1.4.
      </action>
      <action issue="LOG4J2-2049" dev="ggregory" type="update">
        Update Apache Kafka Client from 0.11.0.0 to 0.11.0.1.
      </action>
    </release>
    <release version="2.9.0" date="2017-08-26" description="GA Release 2.9.0">
      <action issue="LOG4J2-1928" dev="rgoers" type="update">
        Add support for DirectWriteRolloverStrategy to RollingRandomAccessFileAppender.
      </action>
      <action issue="LOG4J2-1833" dev="rgoers" type="fix">
        Prevent NullPointerException when a file name is specified with the DirectWriteRolloverStrategy.
      </action>
      <action issue="LOG4J2-2022" dev="rgoers" type="update">
        RFC5424Layout now prints the process id.
      </action>
      <action issue="LOG4J2-2020" dev="mikes" type="update">
        Remove default layout from KafkaAppender.
      </action>
      <action issue="LOG4J2-2018" dev="rpopma" type="fix">
        Fix incorrect documentation for LoggerNameLevelRewritePolicy.
      </action>
      <action issue="LOG4J2-922" dev="ggregory" type="fix" due-to="angus.aqlu, Paul Burrowes">
        Parameter of mdcId in SyslogAppender has no default value.
      </action>
      <action issue="LOG4J2-2001" dev="ggregory" type="fix" due-to="Paul Burrowes">
        StyleConverter.newInstance argument validation is incorrect.
      </action>
      <action issue="LOG4J2-1999" dev="ggregory" type="fix" due-to="Paul Burrowes">
        HighlightConverter converts all unrecognized levels to DEBUG.
      </action>
      <action issue="LOG4J2-2013" dev="ggregory" type="fix" due-to="Taylor Patton, Gary Gregory">
        SslSocketManager does not apply SSLContext on TCP reconnect.
      </action>
      <action issue="LOG4J2-2023" dev="ggregory" type="update">
        Use a class' canonical name instead of name to create its logger name.
      </action>
      <action issue="LOG4J2-2015" dev="ggregory" type="update">
        Allow KeyStoreConfiguration and TrustStoreConfiguration to find files as resources.
      </action>
      <action issue="LOG4J2-2011" dev="rpopma" type="update">
        Replace JCommander command line parser with picocli to let users run Log4j2 utility applications without requiring an external dependency.
      </action>
      <action issue="LOG4J2-2008" dev="rgoers" type="add">
        Support printing multiple StructuredData elements in RFC5424Layout.
      </action>
      <action issue="LOG4J2-1986" dev="mikes" type="add">
        Public API for parsing the output from JsonLayout/XmlLayout/YamlLayout into a LogEvent.
      </action>
      <action issue="LOG4J2-1984" dev="rgoers" type="update">
        Allow maxLength of StructuredData to be specified by the user.
      </action>
      <action issue="LOG4J2-1071" dev="ggregory" type="update" due-to="Ben Ludkiewicz, Benjamin Jaton">
        Allow for bufferSize=0 in SMTP appender.
      </action>
      <action issue="LOG4J2-1981" dev="mikes" type="add">
        JsonLayout, XmlLayout and YamlLayout support 0-byte termination of log events.
      </action>
      <action issue="LOG4J2-1864" dev="mattsicker" type="add" due-to="Matthias Kappeller">
        Support capped collections for MongoDb appender.
      </action>
      <action issue="LOG4J2-2016" dev="ggregory" type="fix" due-to="Benjamin Jaton">
        Mark FileRenameAction as successful when using alternative ways to move files.
      </action>
      <action issue="LOG4J2-2012" dev="ggregory" type="fix" due-to="Benjamin Jaton">
        No compression when using a separate drive in Linux.
      </action>
      <action issue="LOG4J2-1888" dev="ggregory" type="fix" due-to="Misagh Moayyed">
        Log4j throws a java.nio.charset.UnsupportedCharsetException: cp65001.
      </action>
      <action issue="LOG4J2-1990" dev="ggregory" type="fix" due-to="Philippe Mouawad">
        ConcurrentModificationException logging a parameter of type Map.
      </action>
      <action issue="LOG4J2-1311" dev="ggregory" type="fix" due-to="Xibing Liang">
        SocketAppender will lose several events after re-connection to server.
      </action>
      <action issue="LOG4J2-1977" dev="ggregory" type="fix" due-to="Jerry xnslong">
        Consider the StringBuilder's capacity instead of content length when trimming.
      </action>
      <action issue="LOG4J2-1971" dev="rgoers" type="fix">
        Register log4j-core as an OSGi service. Skip tests for LOG4J2-1766 on MacOS. Use group "staff" for LOG4J2-1699 test on MacOS.
      </action>
      <action issue="LOG4J2-1994" dev="ggregory" type="fix">
        TcpSocketServer does not close accepted Sockets.
      </action>
      <action issue="LOG4J2-1987" dev="ggregory" type="fix" due-to="Andreas Felder">
        Log4J JUL Bridge and RMI Security Manager causes access denied ("java.util.logging.LoggingPermission" "control")
      </action>
      <action issue="LOG4J2-1982" dev="ggregory" type="fix" due-to="Christoph Lembeck">
        Log4j-config.xsd only allows one AppenderRef element for each Logger element.
      </action>
      <action issue="LOG4J2-1985" dev="ggregory" type="fix" due-to="Kenneth McFarland">
        Fix default buffer size to match documentation (from 8102 to 8192 a.k.a. 8KB.)
      </action>
      <action issue="LOG4J2-1813" dev="rpopma" type="add">
        Log4j2 will now print all internal logging to the console if system property `log4j2.debug` is defined with any value (or no value).
      </action>
      <action issue="LOG4J2-1261" dev="rpopma" type="update">
        Async Loggers no longer use deprecated LMAX Disruptor APIs. (Disruptor-3.3.3 or higher is now required.)
      </action>
      <action issue="LOG4J2-1908" dev="rpopma" type="update">
        Improved error message when misconfigured with multiple incompatible appenders targeting same file.
      </action>
      <action issue="LOG4J2-1954" dev="rpopma" type="update">
        Configurations with multiple root loggers now fail loudly.
      </action>
      <action issue="LOG4J2-1958" dev="mikes" type="update">
        Deprecate SerializedLayout and remove it as default.
      </action>
      <action issue="LOG4J2-1959" dev="mikes" type="update">
        Disable DTD processing in XML configuration files.
      </action>
      <action issue="LOG4J2-1766" dev="ggregory" type="add" due-to="Pierrick HYMBERT">
        Temporary compress directory during rollover (#88).
      </action>
      <action issue="LOG4J2-1950" dev="ggregory" type="update" due-to="Pierrick HYMBERT">
        Fix docker build with jdk9 requirements (#84).
      </action>
      <action issue="LOG4J2-1801" dev="rpopma" type="update">
        Add more detail to WARN "Ignoring log event" messages printed to the console after log4j was shut down.
      </action>
      <action issue="LOG4J2-1814" dev="rpopma" type="add">
        Added wrapper classes CustomLoggerGenerator and ExtendedLoggerGenerator to avoid class name with a dollar ($) character which has special meaning in many *nix command line environments.
      </action>
      <action issue="LOG4J2-1884" dev="rpopma" type="add">
        Added process ID (pid) pattern converter.
      </action>
      <action issue="LOG4J2-1926" dev="rpopma" type="update">
        Facilitate log4j use in Android applications: remove dependency on RMI and Management APIs from log4j-api.
      </action>
      <action issue="LOG4J2-1699" dev="ggregory" type="add" due-to="Demetrios Dimatos, Pierrick HYMBERT">
        Configurable Log File Permissions with PosixFilePermission.
      </action>
      <action issue="LOG4J2-1945" dev="ggregory" type="add">
        Generate source jas for all test jars.
      </action>
      <action issue="LOG4J2-1934" dev="ggregory" type="add">
        JMS Appender does not know how to recover from a broken connection.
      </action>
      <action issue="LOG4J2-1955" dev="ggregory" type="add">
        JMS Appender should be able connect to a broker (later) even it is not present at configuration time.
      </action>
      <action issue="LOG4J2-1956" dev="ggregory" type="update">
        JMS Appender broker password should be a char[], not a String.
      </action>
      <action issue="LOG4J2-1874" dev="rpopma" type="add" due-to="Roman Leventov">
        Added methods ::writeBytes(ByteBuffer) and ::writeBytes(byte[], int, int) to ByteBufferDestination interface and use these methods in TextEncoderHelper where possible to prepare for future enhancements to reduce lock contention.
      </action>
      <action issue="LOG4J2-1912" dev="ggregory" type="fix" due-to="R Ri">
        CompositeConfiguration logs warning "Unable to determine URI for configuration." However, the reconfiguration is completed.
      </action>
      <action issue="LOG4J2-1964" dev="ggregory" type="fix" due-to="Pierrick HYMBERT">
        Dynamic reconfiguration does not work for filePattern of RollingFile.
      </action>
      <action issue="LOG4J2-1961" dev="ggregory" type="fix" due-to="Christian Vent">
        Reconfigure breaks DirectWriteRolloverStrategy.
      </action>
      <action issue="LOG4J2-1943" dev="rgoers" type="fix">
        The eventPrefix attribute was being ignored in the RFC5424Layout.
      </action>
      <action issue="LOG4J2-1953" dev="ggregory" type="fix">
        JndiManager is not released when the JmsAppender builder catches an exception trying to build itself.
      </action>
      <action issue="LOG4J2-1911" dev="rgoers" type="fix">
        Improve the documentation of the DynamicThresholdFilter.
      </action>
      <action issue="LOG4J2-1929" dev="ggregory" type="fix" due-to="Borys Sokolov">
        EOFException with FormattedMessage.
      </action>
      <action issue="LOG4J2-1948" dev="ggregory" type="fix" due-to="Michael Lück">
        Trim levels read from properties file to remove trailing spaces.
      </action>
      <action issue="LOG4J2-1971" dev="ggregory" type="fix" due-to="liwenxian2017">
        ClassCastException: org.eclipse.osgi.internal.loader.SystemBundleLoader$1 cannot be cast to java.lang.ClassLoader.
      </action>
      <action issue="LOG4J2-1442" dev="mikes" type="add">
        Generic HTTP appender.
      </action>
      <action issue="LOG4J2-1935" dev="ggregory" type="add">
        Add with(String, primitive) methods to org.apache.logging.log4j.message.MapMessage.
      </action>
      <action issue="LOG4J2-1930" dev="ggregory" type="add">
        Add forEach() methods to org.apache.logging.log4j.message.MapMessage.
      </action>
      <action issue="LOG4J2-1932" dev="ggregory" type="add">
        Add containsKey() methods to org.apache.logging.log4j.message.MapMessage.
      </action>
      <action issue="LOG4J2-1917" dev="rgoers" type="update">
        Support using java.util.ServiceLoader to locate Log4j 2 API providers.
      </action>
      <action issue="LOG4J2-1966" dev="ggregory" type="update" due-to="M Sazzadul Hoque">
        Include separator option of PatternLayout in manual (and other updates).
      </action>
      <action issue="LOG4J2-1854" dev="mikes" type="add" due-to="Xavier Jodoin">
        Support null byte delimiter in GelfLayout.
      </action>
      <action issue="LOG4J2-1359" dev="rgoers" type="add">
        Add support for Java 9 StackWalker.
      </action>
      <action issue="LOG4J2-1880" dev="mikes" type="add">
        Warn when a configuration file for an inactive ConfigurationFactory is found.
      </action>
      <action issue="LOG4J2-1855" dev="mattsicker" type="add" due-to="Anthony Maire">
        Add an optional random delay in TimeBasedTriggeringPolicy
      </action>
      <action issue="LOG4J2-1876" dev="mikes" type="fix">
        More reliable checking for runtime dependencies.
      </action>
      <action issue="LOG4J2-1867" dev="mikes" type="fix">
        Fix configuration documentation.
      </action>
      <action issue="LOG4J2-1858" dev="rpopma" type="fix">
        Ensure the ThreadLocal StringBuilder in ParameterizedMessage won't hold excessively much memory after logging a long message.
      </action>
      <action issue="LOG4J2-1885" dev="mattsicker" type="fix">
        Fix documentation about default additivity value for loggers.
      </action>
      <action issue="LOG4J2-1920" dev="ggregory" type="fix" due-to="Ajitha">
        ScriptEngineManager is not available in Android and causes a NoClassDefFoundError.
      </action>
      <action issue="LOG4J2-1989" dev="ggregory" type="fix" due-to="Kenneth McFarland">
        Clarify Javadoc for AbstractTriggeringPolicy.
      </action>
      <action issue="LOG4J2-1993" dev="ggregory" type="fix" due-to="Kenneth McFarland">
        Fix compiler warnings in LoggerConfigTest.
      </action>
      <action issue="LOG4J2-1851" dev="mikes" type="update">
        Move server components from log4j-core to new log4-server module.
      </action>
      <action issue="LOG4J2-1860" dev="mikes" type="add">
        Shortcut to add Property and KeyValuePair component in ConfigurationBuilder.
      </action>
      <action issue="LOG4J2-1294" dev="ggregory" type="add">
        The JMS Appender should use a JMS MapMessage for a Log4j MapMessage.
      </action>
      <action issue="LOG4J2-1991" dev="ggregory" type="update" due-to="">
        Refactor SimpleMessage to be concise and clear (#100)
      </action>
      <action issue="LOG4J2-2017" dev="ggregory" type="update">
        Update Jackson from 2.8.9 to 2.9.0.
      </action>
      <action issue="LOG4J2-1868" dev="ggregory" type="update">
        Update ZeroMQ's JeroMQ from 0.3.6 to 0.4.0.
      </action>
      <action issue="LOG4J2-1960" dev="ggregory" type="update">
        Update ZeroMQ's JeroMQ from 0.4.0 to 0.4.1.
      </action>
      <action issue="LOG4J2-1974" dev="ggregory" type="update">
        Update ZeroMQ's JeroMQ from 0.4.1 to 0.4.2.
      </action>
      <action issue="LOG4J2-1869" dev="ggregory" type="update">
        Update Kafka client from 0.10.1.1 to 0.10.2.0
      </action>
      <action issue="LOG4J2-1962" dev="ggregory" type="update">
        Update Kafka client from 0.10.2.0 to 0.11.0.0
      </action>
      <action issue="LOG4J2-1872" dev="ggregory" type="update">
		Update JavaMail from 1.5.5 to 1.5.6.
      </action>
      <action issue="LOG4J2-1879" dev="ggregory" type="update">
		Update JAnsi from 1.14 to 1.15.
      </action>
      <action issue="LOG4J2-1877" dev="ggregory" type="update" due-to="Chandra Tungathurthi">
		Missing documentation for Max index limit in DefaultRolloverStrategy.
      </action>
      <action issue="LOG4J2-1899" dev="ggregory" type="update">
        Add missing getters to classes in package org.apache.logging.log4j.core.net.ssl.
      </action>
      <action issue="LOG4J2-1900" dev="ggregory" type="update">
        Update JAnsi from 1.15 to 1.16.
      </action>
      <action issue="LOG4J2-" dev="ggregory" type="update">
        Update SLF4J from 1.7.24 to 1.7.25.
      </action>
      <action issue="LOG4J2-1938" dev="ggregory" type="update">
        Update Jackson from 2.8.7 to 2.8.9.
      </action>
      <action issue="LOG4J2-1970" dev="rpopma" type="update">
        Update HdrHistogram from 2.1.8 to 2.1.9.
      </action>
      <action issue="LOG4J2-1975" dev="ggregory" type="update">
        Update javax.persistence from 2.1.0 to 2.1.1.
      </action>
      <action issue="LOG4J2-1976" dev="ggregory" type="update">
        Update org.osgi.core from 4.3.1 to 6.0.0.
      </action>
    </release>
    <release version="2.8.2" date="2017-04-02" description="GA Release 2.8.2">
      <action issue="LOG4J2-1861" dev="mattsicker" type="fix">
        Fix JavaDoc on org.apache.logging.log4j.ThreadContext about inheritance.
      </action>
      <action issue="LOG4J2-1862" dev="mattsicker" type="fix" due-to="wangyuntao">
        Fix JavaDoc about @Order and OrderComparator ordering.
      </action>
      <action issue="LOG4J2-1849" dev="rpopma" type="fix">
        Fixed daylight savings time (DST) issue with FixedDateFormat.
      </action>
      <action issue="LOG4J2-1850" dev="mattsicker" type="fix" due-to="Ludovic Hochet">
        Fix CassandraRule and unit tests on Windows.
      </action>
      <action issue="LOG4J2-1840" dev="mattsicker" type="fix" due-to="Pradeep Balasundaram">
        Fix typo in %replace converter documentation.
      </action>
      <action issue="LOG4J2-1846" dev="mikes" type="fix">
        Handle when LogEvent.getLoggerName() returns null in LoggerNameLevelRewritePolicy.
      </action>
      <action issue="LOG4J2-1845" dev="mikes" type="fix">
        Handle when LogEvent.getLoggerName() returns null in KafkaAppender.
      </action>
      <action issue="LOG4J2-1853" dev="ggregory" type="fix" due-to="wangyuntao">
        The default value of RandomAccessFileAppender.Builder append field is wrong.
      </action>
      <action issue="LOG4J2-1863" dev="mattsicker" type="add">
        Add support for filtering input in TcpSocketServer and UdpSocketServer.
      </action>
      <action issue="LOG4J2-1848" dev="mattsicker" type="add">
        Add JSON encoding support to EncodingPatternConverter %encode{}.
      </action>
      <action issue="LOG4J2-1843" dev="mattsicker" type="add" due-to="Zilong Song">
        Add support for appending common suffix to each line of throwable stack trace.
      </action>
      <action issue="LOG4J2-1838" dev="mattsicker" type="add" due-to="Zilong Song">
        Add support for appending common suffix to each line of extended and root throwable stack trace.
      </action>
      <action issue="LOG4J2-1827" dev="rgoers" type="update">
        Move integration tests to their own module to speed up build.
      </action>
      <action issue="LOG4J2-1835" dev="mattsicker" type="fix">
        Fix documentation about the licensing for JeroMQ.
      </action>
      <action issue="LOG4J2-1836" dev="rgoers" type="fix">
        Update the API version to 2.6.0.
      </action>
      <action issue="LOG4J2-1831" dev="ggregory" type="fix" due-to="Edward Serebrinskiy">
        NullPointerException in HtmlLayout.
      </action>
      <action issue="LOG4J2-1820" dev="ggregory" type="fix" due-to="Jason Tedor">
        Log4j 2.8 can lose exceptions when a security manager is present.
      </action>
      <action issue="LOG4J2-1856" dev="ggregory" type="update">
        Update Jackson from 2.8.6 to 2.8.7.
      </action>
    </release>
    <release version="2.8.1" date="2017-02-26" description="GA Release 2.8.1">
      <action issue="LOG4J2-1804" dev="rgoers" type="fix" due-to="Pierrick Hymbert">
        Allow %i in file pattern to be preceded with characters other than just '-'.
      </action>
      <action issue="LOG4J2-1822" dev="rgoers" type="update">
        Update SLF4J to 1.7.24.
      </action>
      <action issue="LOG4J2-1812" dev="rpopma" type="update">
        Improved error message when log4j 2 configuration file not found.
      </action>
      <action issue="LOG4J2-1810" dev="rgoers" type="update">
        Update to use Logback 1.1.10 and then Logback 1.2 for tests.
      </action>
      <action issue="LOG4J2-1819" dev="ggregory" type="update">
        Update Jackson from 2.8.5 to 2.8.6.
      </action>
      <action issue="LOG4J2-1753" dev="ggregory" type="fix" due-to="Ludovic Hochet">
        Fix ClassNotFoundException org.apache.logging.log4j.core.util.ExecutorServices in OSGi tests.
      </action>
      <action issue="LOG4J2-1816" dev="rpopma" type="fix" due-to="shubhankar1100">
        Change minOccur to minOccurs in Log4j-config.xsd.
      </action>
      <action issue="LOG4J2-1803" dev="rgoers" type="fix">
        Fix Maven POM to ensure JMH generated classes in log4j-perf are included in benchmarks jar.
      </action>
      <action issue="LOG4J2-1800" dev="mikes" type="fix" due-to="Vincent Tieleman">
        Report errors when sending to Kafka when using syncSend=false.
      </action>
      <action issue="LOG4J2-1805" dev="rpopma" type="fix">
        Fixed rare race condition in FixedDateFormat, made FixedDateFormat::millisSinceMidnight method public.
      </action>
      <action issue="LOG4J2-1799" dev="rpopma" type="fix" due-to="Eduard Gizatullin">
        Fixed bug in PropertiesUtil::getCharsetProperty that caused UnsupportedCharsetException for ConsoleAppender.
      </action>
      <action issue="LOG4J2-1806" dev="rpopma" type="fix" due-to="challarao">
        Fix Javadoc for DefaultRolloverStrategy::purgeAscending
      </action>
      <action issue="LOG4J2-1818" dev="ggregory" type="fix" due-to="xkr47">
        Fix rollover to work when filePattern contains no directory components.
      </action>
      <action issue="LOG4J2-1823" dev="mattsicker" type="add">
        Remove deprecation on MessageSupplier lambda functions in Logger API.
      </action>
      <action issue="LOG4J2-1807" dev="ggregory" type="add">
        [core] Add and implement LogEvent.toImmutable().
      </action>
    </release>
    <release version="2.8" date="2017-01-21" description="GA Release 2.8">
      <action issue="LOG4J2-1780" dev="mikes" type="fix">
        Eliminate the use of the ExecutorServices in the LoggerContext.
      </action>
      <action issue="LOG4J2-1032" dev="rgoers" type="add">
        Make DefaultRolloverStrategy more efficient when renaming files. Add nomax option to the fileIndex attribute.
      </action>
      <action issue="LOG4J2-1101" dev="rgoers" type="add">
        RollingFileAppender now supports omitting the file name and writing directly to the archive files.
      </action>
      <action issue="LOG4J2-1786" dev="rpopma" type="fix">
        ConfigurationScheduler now preserves interrupt flag during stop.
      </action>
      <action issue="LOG4J2-1243" dev="rgoers" type="add">
        Allow default value in property to be a Lookup.
      </action>
      <action issue="LOG4J2-1779" dev="rpopma" type="fix">
        Fixed bug where AsyncLogger did not resolve configuration properties.
      </action>
      <action issue="LOG4J2-1769" dev="rpopma" type="fix" due-to="Brandon Goodin">
        Fixed concurrency issue affecting all layouts except PatternLayout and GelfLayout, which caused scrambled output and exceptions when logging synchronously from multiple threads.
      </action>
      <action issue="LOG4J2-1724" dev="mikes" type="fix" due-to="Alexander Krasnostavsky">
        Using variables in GelfLayout's additional fields at runtime.
      </action>
      <action issue="LOG4J2-1762" dev="mikes" type="fix">
        Add Builder to GelfLayout.
      </action>
      <action issue="LOG4J2-1649" dev="rgoers" type="fix" due-to="Georg Friedrich">
        Insure the ConfigurationScheduler shuts down without blocking.
      </action>
      <action issue="LOG4J2-1653" dev="rgoers" type="fix" due-to=" Georg Friedrich">
        CronTriggeringPolicy would use the wrong date/time when rolling over and create multiple triggering policies on reconfiguration.
      </action>
      <action issue="LOG4J2-1748" dev="mikes" type="fix">
        Do not use non-daemon thread pool for rollover tasks.
      </action>
      <action issue="LOG4J2-1628" dev="rpopma" type="fix">
        Fixed file locking regression in FileAppender introduced in 2.6.
      </action>
      <action issue="LOG4J2-1744" dev="rpopma" type="fix">
        The custom logger Generate tool no longer requires the log4j-api module on the classpath.
      </action>
      <action issue="LOG4J2-1731" dev="rpopma" type="fix" due-to="Chris Ribble">
        SslSocketManager now respects connectTimeoutMillis.
      </action>
      <action issue="LOG4J2-1682" dev="ggregory" type="fix" due-to="Markus Waidhofer">
        Logger using LocalizedMessageFactory prints key instead of message.
      </action>
      <action issue="LOG4J2-1720" dev="mikes" type="fix">
        Make GelfLayout independent of Jackson.
      </action>
      <action issue="LOG4J2-1719" dev="rpopma" type="fix">
        Fixed race condition in ObjectMessage and SimpleMessage, ensuring that the log message contains the value the object has during the logging call.
      </action>
      <action issue="LOG4J2-1688" dev="rpopma" type="fix">
        Fixed bug where elements of a log message parameter array were nulled out in garbage-free mode.
      </action>
      <action issue="LOG4J2-1692" dev="mikes" type="fix" due-to="Greg Thomas">
        Add putAll() method to CloseableThreadContext.
      </action>
      <action issue="LOG4J2-1689" dev="mikes" type="fix">
        Add CleanableThreadContextMap interface supporting method removeAll(Iterable&lt;String&gt;).
      </action>
      <action issue="LOG4J2-1685" dev="mikes" type="fix" due-to="Raman Gupta">
        Option 'disableAnsi' in PatternLayout to unconditionally disable ANSI escape codes.
      </action>
      <action issue="LOG4J2-1706" dev="rpopma" type="fix">
        Make TimeFilter usable as global filter and as logger filter.
      </action>
      <action issue="LOG4J2-1722" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in VariablesNotEmptyReplacementConverter.
      </action>
      <action issue="LOG4J2-1717" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in EncodingPatternConverter.
      </action>
      <action issue="LOG4J2-1716" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in MapPatternConverter. (Note that constructing a MapMessage is not garbage-free.)
      </action>
      <action issue="LOG4J2-1683" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in MapMessage.
      </action>
      <action issue="LOG4J2-1715" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in NdcPatternConverter. (Note that use of the ThreadContext stack is not garbage-free.)
      </action>
      <action issue="LOG4J2-1714" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in AbstractStyleNameConverter.
      </action>
      <action issue="LOG4J2-1680" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in TimeFilter.
      </action>
      <action issue="LOG4J2-1679" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in StructuredDataFilter.
      </action>
      <action issue="LOG4J2-1678" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in ThreadContextMapFilter.
      </action>
      <action issue="LOG4J2-1677" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in MapFilter.
      </action>
      <action issue="LOG4J2-1674" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in ThresholdFilter.
      </action>
      <action issue="LOG4J2-1673" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in MarkerFilter.
      </action>
      <action issue="LOG4J2-1672" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in LevelRangeFilter.
      </action>
      <action issue="LOG4J2-1671" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in EqualsIgnoreCaseReplacementConverter.
      </action>
      <action issue="LOG4J2-1670" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in EqualsReplacementConverter.
      </action>
      <action issue="LOG4J2-1669" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in MaxLengthConverter.
      </action>
      <action issue="LOG4J2-1668" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in MarkerPatternConverter.
      </action>
      <action issue="LOG4J2-1667" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in SequenceNumberPatternConverter.
      </action>
      <action issue="LOG4J2-1666" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in RelativeTimePatternConverter.
      </action>
      <action issue="LOG4J2-1665" dev="rpopma" type="fix">
        (GC) Avoid allocating temporary objects in IntegerPatternConverter.
      </action>
      <action issue="LOG4J2-1637" dev="rpopma" type="fix">
        Fixed problems when used in OSGi containers (IllegalAccessError, NoClassDefFoundError).
      </action>
      <action issue="LOG4J2-1226" dev="rpopma" type="fix">
        Improve LogEvent serialization to handle non-serializable Messages and deserializing when required classes are missing.
      </action>
      <action issue="LOG4J2-1663" dev="rpopma" type="fix">
        Ensure SortedArrayStringMap can be serialized and deserialized without errors regardless of content.
      </action>
      <action issue="LOG4J2-1658" dev="rpopma" type="fix">
        Prevent NPE in ThreadContextMapFactory::createThreadContextMap when initializing Log4j with Configurator::initialize and the BasicContextSelector is used.
      </action>
      <action issue="LOG4J2-1645" dev="mikes" type="fix">
        Immutable empty StringMap.
      </action>
      <action issue="LOG4J2-1623" dev="mikes" type="fix">
        Configurable JVM shutdown hook timeout.
      </action>
      <action issue="LOG4J2-1712" dev="ggregory" type="fix">
        Pick up bug fixes from Apache Commons Lang's org.apache.commons.lang3.time package.
      </action>
      <action issue="LOG4J2-1636" dev="ggregory" type="fix" due-to="Eldar Gabdullin">
        Console Appender does not pick up Oracle Java 8's sun.stdout.encoding and sun.stderr.encoding.
      </action>
      <action issue="LOG4J2-1639" dev="ggregory" type="fix" due-to="Sridhar Gopinath">
        Fix MemoryMappedFileAppender.createAppender() Javadoc for immediateFlush.
      </action>
      <action issue="LOG4J2-1676" dev="ggregory" type="fix" due-to="Joern Huxhorn">
        Some LogEvents may not carry a Throwable (Use Message.getThrowable() in log(Message) methods.)
      </action>
      <action issue="LOG4J2-1723" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
        Unwanted transitive dependency on geronimo-jms_1.1_spec causes OSGi tests to fail.
      </action>
      <action issue="LOG4J2-1664" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
        Improve OSGi unit tests.
      </action>
      <action issue="LOG4J2-1687" dev="ggregory" type="fix" due-to="Robert Christiansen">
        NPE in ThrowableProxy when resolving stack in Java EE/OSGi environment.
      </action>
      <action issue="LOG4J2-1642" dev="ggregory" type="fix" due-to="Johno Crawford">
        DefaultShutdownCallbackRegistry can throw a NoClassDefFoundError.
      </action>
      <action issue="LOG4J2-1474" dev="ggregory" type="fix" due-to="yin mingjun, Neon">
        CronTriggeringPolicy raise exception and fail to rollover log file when evaluateOnStartup is true.
      </action>
      <action issue="LOG4J2-1734" dev="ggregory" type="fix">
        SslSocketManagerFactory might leak Sockets when certain startup errors occur.
      </action>
      <action issue="LOG4J2-1736" dev="ggregory" type="fix">
        TcpSocketManagerFactory might leak Sockets when certain startup errors occur.
      </action>
      <action issue="LOG4J2-1740" dev="ggregory" type="fix">
        Add CronTriggeringPolicy programmatically leads to NPE.
      </action>
      <action issue="LOG4J2-1743" dev="ggregory" type="fix" due-to="Toby Shepheard">
        CompositeConfiguration does not add filters to appenderRefs.
      </action>
      <action issue="LOG4J2-1756" dev="ggregory" type="fix"  due-to="shubhankar1100">
        Adds xmlns in schema and some other tags.
      </action>
      <action issue="LOG4J2-1781" dev="mattsicker" type="update">
        Update Conversant Disruptor from 1.2.7 to 1.2.10
      </action>
      <action issue="LOG4J2-1774" dev="mattsicker" type="update">
        Replace MockEJB dependency in unit tests with Spring Test and Mockito.
      </action>
      <action issue="LOG4J2-1644" dev="ggregory" type="update" due-to="Tim Gokcen, Pavel Sivolobtchik">
        Inefficient locking in AbstractLoggerAdapter.
      </action>
      <action issue="LOG4J2-1641" dev="ggregory" type="update">
        Update JeroMQ from 0.3.5 to 0.3.6.
      </action>
      <action issue="LOG4J2-1647" dev="mattsicker" type="update">
        Update Commons Lang from 3.4 to 3.5.
      </action>
      <action issue="LOG4J2-1646" dev="mattsicker" type="update">
        Migrate to Mockito 2.x in unit tests.
      </action>
      <action issue="LOG4J2-1655" dev="ggregory" type="update">
        Update Jackson from 2.8.3 to 2.8.4.
      </action>
      <action issue="LOG4J2-1735" dev="ggregory" type="update">
        Update Jackson from 2.8.4 to 2.8.5.
      </action>
      <action issue="LOG4J2-1656" dev="ggregory" type="update">
        Update Apache Flume from 1.6.0 to 1.7.0.
      </action>
      <action issue="LOG4J2-1698" dev="ggregory" type="update">
        Update LMAX Disruptor from 3.3.5 to 3.3.6.
      </action>
      <action issue="LOG4J2-1700" dev="ggregory" type="update">
        Update Jansi from 1.13 to 1.14.
      </action>
      <action issue="LOG4J2-1750" dev="ggregory" type="update">
        Update Kafka from 0.10.0.1 to 0.10.1.1.
      </action>
      <action issue="LOG4J2-1751" dev="ggregory" type="update">
        Update liquibase-core from 3.5.1 to 3.5.3.
      </action>
      <action issue="LOG4J2-1302" dev="rpopma" type="update">
        The log4j-slf4j-impl module now declares a runtime dependency on log4j-core. While not technically required, this makes the log4j-slf4j-impl module behave similarly to slf4j-log4j12, and facilitates migration to Log4j 2.
      </action>
      <action issue="LOG4J2-1787" dev="mattsicker" type="add">
        Document how to exclude transitive conflicting dependencies in Maven and Gradle.
      </action>
      <action issue="LOG4J2-1773" dev="mattsicker" type="add">
        Add StatusLoggerRule to allow unit tests to set a status level.
      </action>
      <action issue="LOG4J2-424" dev="mattsicker" type="add">
        Add non-string data type support to JdbcAppender via new ColumnMapping plugin.
      </action>
      <action issue="LOG4J2-1771" dev="mattsicker" type="add">
        Add a Builder to ColumnConfig and deprecate ColumnConfig.createColumnConfig().
      </action>
      <action issue="LOG4J2-1770" dev="mattsicker" type="add">
        Add a Builder to JdbcAppender and deprecate JdbcAppender.createAppender().
      </action>
      <action issue="LOG4J2-1764" dev="mattsicker" type="add">
        Use MethodHandle in ContextDataFactory cached constructor.
      </action>
      <action issue="LOG4J2-1730" dev="mattsicker" type="add">
        Add Apache Cassandra appender and ColumnMapping plugin.
      </action>
      <action issue="LOG4J2-1759" dev="mattsicker" type="add">
        Add TypeConverter for java.util.UUID.
      </action>
      <action issue="LOG4J2-1758" dev="mattsicker" type="add">
        Add TypeConverter for java.nio.file.Path.
      </action>
      <action issue="LOG4J2-1755" dev="mattsicker" type="add">
        Add TypeConverter and constraint validators for java.net.InetAddress and port numbers.
      </action>
      <action issue="LOG4J2-969" dev="ggregory" type="add">
        Refactor SyslogAppender so that Layout is a Plugin element.
      </action>
      <action issue="LOG4J2-1660" dev="rpopma" type="add">
        Added public method ThreadContext::getThreadContextMap; removed class ThreadContextAccess.
      </action>
      <action issue="LOG4J2-1379" dev="mattsicker" type="add">
        Add documentation regarding YAML configuration format.
      </action>
      <action issue="LOG4J2-1718" dev="rpopma" type="add">
        Introduce marker interface AsynchronouslyFormattable.
      </action>
      <action issue="LOG4J2-1681" dev="rpopma" type="add">
        Introduce interfaces IndexedStringMap and IndexedReadOnlyStringMap, supporting garbage-free iteration over sorted map.
      </action>
      <action issue="LOG4J2-1695" dev="ggregory" type="add">
        Add a Builder to ScriptPatternSelector and deprecate ScriptPatternSelector.createSelector().
      </action>
      <action issue="LOG4J2-1696" dev="ggregory" type="add">
        Add a Builder to MarkerPatternSelector and deprecate MarkerPatternSelector.createSelector().
      </action>
      <action issue="LOG4J2-1697" dev="ggregory" type="add">
        Add a SerializerBuilder to PatternLayout and deprecate PatternLayout.createSerializer().
      </action>
      <action issue="LOG4J2-1701" dev="ggregory" type="add">
        Add a Builder to RandomAccessFileAppender and deprecate RandomAccessFileAppender.createAppender().
      </action>
      <action issue="LOG4J2-1703" dev="ggregory" type="add">
        Add a Builder to MemoryMappedFileAppender and deprecate MemoryMappedFileAppender.createAppender().
      </action>
      <action issue="LOG4J2-1704" dev="ggregory" type="add">
        Add a Builder to RollingRandomAccessFileAppender and deprecate RollingRandomAccessFileAppender.createAppender().
      </action>
      <action issue="LOG4J2-1709" dev="ggregory" type="add">
        Add a Builder to SyslogAppender and deprecate SyslogAppender.createAppender().
      </action>
      <action issue="LOG4J2-1707" dev="ggregory" type="add">
        Allow TCP Socket Appender to set socket options.
      </action>
      <action issue="LOG4J2-1708" dev="ggregory" type="add">
        Allow Secure Socket Appender to set socket options.
      </action>
      <action issue="LOG4J2-1737" dev="ggregory" type="add">
        Add a Builder to SyslogLayout and deprecate SyslogLayout.createLayout(Facility, boolean, String, Charset).
      </action>
      <action issue="LOG4J2-1738" dev="ggregory" type="add">
        Add a Builder to JsonLayout and deprecate org.apache.logging.log4j.core.layout.JsonLayout.createLayout(Configuration, boolean, boolean, boolean, boolean, boolean, boolean, String, String, Charset, boolean).
      </action>
      <action issue="LOG4J2-1739" dev="ggregory" type="add">
        Add Builder to KafkaAppender and deprecate KafkaAppender.createAppender(Layout, Filter, String, boolean, String, Property[], Configuration).
      </action>
      <action issue="LOG4J2-1733" dev="ggregory" type="add" due-to="Vincent Tieleman">
        Add SyncSend attribute to KafkaAppender (as in KafkaLog4jAppender).
      </action>
      <action issue="LOG4J2-2195" dev="ggregory" type="fix" due-to="Raman Gupta, Gary Gregory">
        Cannot define both `filters` and `separator` for PatternLayout %xEx.
      </action>
      <action issue="LOG4J2-2221" dev="ggregory" type="fix" due-to="Raman Gupta, Gary Gregory">
        RootThrowablePatternConverter does not use TextRenderer or line separator options.
      </action>
    </release>
    <release version="2.7" date="2016-10-02" description="GA Release 2.7">
      <action issue="LOG4J2-1618" dev="rpopma" type="fix" due-to="Raman Gupta">
        Fixed ClassCastException when using JUL logging during shutdown.
      </action>
      <action issue="LOG4J2-1620" dev="ggregory" type="fix" due-to="Sascha Scholz">
        2.7-rc1: RollingFileAppender immediateFlush default value should be true, not false.
      </action>
      <action issue="LOG4J2-1611" dev="rpopma" type="fix">
        Improved performance of context data injector for web applications to be on par with standalone applications.
      </action>
      <action issue="LOG4J2-1591" dev="rpopma" type="fix">
        Introduced new interface LifeCycle2 with stop(long,TimeUnit) method to avoid breaking backwards compatibility with new Configurator.shutdown(LoggerContext, long, TimeUnit) API.
      </action>
      <action issue="LOG4J2-1590" dev="rpopma" type="fix">
        Fixed issue with filters extending AbstractFilter that did not override methods with unrolled varargs.
      </action>
      <action issue="LOG4J2-1583" dev="rpopma" type="fix" due-to="Larry West">
        Fixed scrambled log messages triggered by nested logging from toString() method of a logging parameter object.
      </action>
      <action issue="LOG4J2-1259" dev="ggregory" type="fix" due-to="Misagh Moayyed, Steffen Offermann">
        Log4j threads are no longer leaking on Tomcat shutdown.
      </action>
      <action issue="LOG4J2-1051" dev="rpopma" type="fix" due-to="Lukasz Lenart">
        When starting on Google App Engine, Interpolator now suppresses the NoClassDefFoundError stack trace  for the jvmrunargs lookup.
      </action>
      <action issue="LOG4J2-1582" dev="rpopma" type="fix">
        When initializing on platforms where JMX is not available, Interpolator component no longer prints stack trace for warning messages.
      </action>
      <action issue="LOG4J2-1581" dev="rpopma" type="fix">
        Unregistering JMX components no longer prints a stack trace when the MBean has already been unregistered.
      </action>
      <action issue="LOG4J2-1313" dev="rpopma" type="fix" due-to="Philipp Knobel, Leon Finker">
        Support Property values to be specified in configuration as a value attribute as well as an element.
      </action>
      <action issue="LOG4J2-1575" dev="rpopma" type="fix">
        (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().
      </action>
      <action issue="LOG4J2-1457" dev="mattsicker" type="fix" due-to="Leon Finker">
        Fixed class loader deadlock when using async logging and extended stack trace pattern.
      </action>
      <action issue="LOG4J2-1563" dev="ggregory" type="fix" due-to="Jason Tedor">
        Fix to prevent Log4j 2.6.2 and higher from losing exceptions when a security manager is present.
      </action>
      <action issue="LOG4J2-1530" dev="mikes" type="fix">
        Fixed issue where LogEvent.getContextStack() returned null.
      </action>
      <action issue="LOG4J2-1518" dev="rpopma" type="fix" due-to="Leon Finker">
        Prevent deadlock in Async Loggers when queue is full and logged Object's toString() logs another message.
      </action>
      <action issue="LOG4J2-1542" dev="rpopma" type="fix" due-to="Rogério Lecarião Leite">
        Prevent ArrayIndexOutOfBoundsException in ParameterizedMessage.formatTo for single-char or empty messages.
      </action>
      <action issue="LOG4J2-1549" dev="mikes" type="fix" due-to="Jason Bedard">
        Fixed issue where AsyncLoggerContextSelector+PropertiesConfigurationBuilder defaulted to includeLocation=true.
      </action>
      <action issue="LOG4J2-1562" dev="ggregory" type="fix">
        Prevent SocketAppender memory usage from growing unbounded if it cannot connect to a server.
      </action>
      <action issue="LOG4J2-1559" dev="ggregory" type="fix" due-to="Andrey Plotkin">
        Prevent NPE in Level.isInRange.
      </action>
      <action issue="LOG4J2-1511" dev="ggregory" type="fix" due-to="Srikanth Surukuntu">
        DynamicThresholdFilter filtered incorrectly when params were passed as individual arguments instead of varargs.
      </action>
      <action issue="LOG4J2-1548" dev="ggregory" type="fix">
        [CronTriggeringPolicy] ConfigurationScheduler scheduled the task infinitely after first fire.
      </action>
      <action issue="LOG4J2-1506" dev="ggregory" type="fix" due-to="Johannes Schleger">
        Log4j should not unregister JMX MBeans when log4j2.disable.jmx property is true.
      </action>
      <action issue="LOG4J2-1490" dev="ggregory" type="fix" due-to="Krzysztof Taborski">
        Log4j2 should postpone creating log file until the appender actually receives an event.
      </action>
      <action issue="LOG4J2-1320" dev="ggregory" type="fix" due-to="Paresh Varke, Pierrick Hymbert">
        Support loading custom plugins from jar files and directories whose classpath entries use the "vfs" URL protocol.
      </action>
      <action issue="LOG4J2-1541" dev="ggregory" type="fix">
        Fix file handle resource leak in XmlConfiguration.XmlConfiguration(ConfigurationSource).
      </action>
      <action issue="LOG4J2-1538" dev="ggregory" type="fix" due-to="Igor Karpov">
        Prevent NPE when dynamically removing filters.
      </action>
      <action issue="LOG4J2-1532" dev="ggregory" type="fix">
        Attributes were not merged properly in composite configurations.
      </action>
      <action issue="LOG4J2-1529" dev="mattsicker" type="fix" due-to="Sridevi Narra">
        Attributes were not merged properly in composite configurations.
      </action>
      <action issue="LOG4J2-1527" dev="rpopma" type="fix" due-to="Jose Leon">
        Prevent NPE in RingBufferLogEvent.getFormattedMessage() when used in web applications.
      </action>
      <action issue="LOG4J2-905" dev="ggregory" type="fix" due-to="Moritz Löser">
        Added ability to disable (date) lookup completely for compatibility with other libraries like Camel.
      </action>
      <action issue="LOG4J2-1526" dev="mikes" type="fix">
        Added support for setting StatusLogger destination in ConfigurationBuilder.
      </action>
      <action issue="LOG4J2-1448" dev="rpopma" type="fix" due-to="Keith Laban">
        Allow comma separated agents, host list to be passed to FlumeAppender.
      </action>
      <action issue="LOG4J2-1500" dev="ggregory" type="fix" due-to="Jose Leon">
        Merging configurations failed with an NPE when comparing Nodes with different attributes.
      </action>
      <action issue="LOG4J2-1482" dev="ggregory" type="fix" due-to="Sumit Singhal">
        Fixed improper header in CsvParameterLayout.
      </action>
      <action issue="LOG4J2-1199" dev="rpopma" type="fix">
        Documented that JVM Input Arguments Lookup (JMX) is not available on Google App Engine.
      </action>
      <action issue="LOG4J2-1438" dev="rpopma" type="fix">
        (GC) Added method getParameter() to ObjectMessage (and ReusableObjectMessage).
      </action>
      <action issue="LOG4J2-1488" dev="rpopma" type="fix" due-to="Richard Zschech">
        (GC) Fixed ISO8601 %date conversion pattern with a period '.' separator for milliseconds is now garbage free.
      </action>
      <action issue="LOG4J2-1489" dev="rpopma" type="fix" due-to="Richard Zschech">
        (GC) Fixed %date conversion patterns with a timezone parameter are now garbage free.
      </action>
      <action issue="LOG4J2-1279" dev="rpopma" type="fix" due-to="Tony Baines">
        Prevent NullPointerException in FastDateParser$TimeZoneStrategy.
      </action>
      <action issue="LOG4J2-1341" dev="rpopma" type="fix" due-to="Richard Zschech">
        (GC) HighlightConverter and StyleConverter are now GC-free.
      </action>
      <action issue="LOG4J2-1467" dev="rpopma, ggregory" type="fix" due-to="Ralf, Gary Gregory">
        [OSGi] Fixed missing import package.
      </action>
      <action issue="LOG4J2-351" dev="rpopma, ggregory" type="fix" due-to="Roland Weiglhofer">
        [OSGi] Fixed wrong Fragment-Host in manifest files.
      </action>
      <action issue="LOG4J2-1313" dev="rpopma" type="fix" due-to="Philipp Knobel">
        Properties declared in configuration can now have their value either in the element body or in an attribute named "value".
      </action>
      <action issue="LOG4J2-1235" dev="ggregory" type="fix" due-to="Niranjan Rao, Sascha Scholz, Aleksey Zvolinsky">
        org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy was not working correctly.
      </action>
      <action issue="LOG4J2-1502" dev="ggregory" type="fix" due-to="Sumit Singhal">
        Fixed issue where CsvParameterLayout and CsvLogEventLayout inserted NUL characters if data starts with {, (, [ or "
      </action>
      <action issue="LOG4J2-1573" dev="ggregory" type="fix" due-to="Steffen Offermann">
        Layout is no longer optional.
      </action>
      <action issue="LOG4J2-1608" dev="ggregory" type="fix">
        ServletAppender does not provide throwable object to ServletContext.
      </action>
      <action issue="LOG4J2-1599" dev="ggregory" type="fix">
        Prevent potential NPE in org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, char[], int, Object[], int, int[]).
      </action>
      <action issue="LOG4J2-1600" dev="ggregory" type="fix">
        Prevent potential NPE due to org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], String, boolean, boolean, Configuration).
      </action>
      <action issue="LOG4J2-1601" dev="ggregory" type="fix">
        Prevent potential NPE due to org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, PatternMatch[], String, boolean, boolean, Configuration).
      </action>
      <action issue="LOG4J2-1602" dev="ggregory" type="fix">
        Prevent potential NPE in org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) when object is null.
      </action>
      <action issue="LOG4J2-1603" dev="ggregory" type="fix">
        Redo hashCode() and equals() methods in org.apache.logging.log4j.core.net.ssl classes.
      </action>
      <action issue="LOG4J2-1610" dev="ggregory" type="fix" due-to="Shubhankar">
        Add targetNamespace to log4j-config.xsd. GitHub #43.
      </action>
      <action issue="LOG4J2-1619" dev="ggregory" type="fix">
        new Log4jLogEvent().toString() throws an NPE.
      </action>
      <action issue="LOG4J2-1578" dev="ggregory" type="add">
        RoutingAppender can be configured with scripts. Add Script in a Routes element.
      </action>
      <action issue="LOG4J2-1597" dev="ggregory" type="add">
        Add a ScriptAppenderSelector to create an Appender specified by a Script.
      </action>
      <action issue="LOG4J2-1349" dev="rpopma" type="add">
        (GC) Added support for garbage-free ThreadContext map. Disabled by default, users need to enable this explicitly.
      </action>
      <action issue="LOG4J2-1447" dev="rpopma" type="add">
        (GC) Changed LogEvent's internal data structure for context data to be garbage-free. Added method LogEvent#getContextData(), deprecated method #getContextMap().
      </action>
      <action issue="LOG4J2-1010" dev="rpopma" type="add" due-to="Mikael Ståldal">
        Users can now inject context data from other sources than ThreadContext. Values can be any Object, not just Strings.
      </action>
      <action issue="LOG4J2-1568" dev="mattsicker" type="add">
        Added support for java.util.concurrent.LinkedTransferQueue to AsyncAppender.
      </action>
      <action issue="LOG4J2-1430" dev="mattsicker" type="add" due-to="John Cairns">
        Added optional support for Conversant DisruptorBlockingQueue in AsyncAppender.
      </action>
      <action issue="LOG4J2-1439" dev="mattsicker" type="add" due-to="Anthony Maire">
        Added optional support for JCTools MPSC bounded lock-free queue in AsyncAppender.
      </action>
      <action issue="LOG4J2-1558" dev="ggregory" type="add">
        SocketAppender now supports IO buffering.
      </action>
      <action issue="LOG4J2-1557" dev="ggregory" type="add">
        Add a Builder for the SocketAppender (deprecates factory method).
      </action>
      <action issue="LOG4J2-1609" dev="ggregory" type="add">
        Add a Builder to ServletAppender and deprecate factory method.
      </action>
      <action issue="LOG4J2-1553" dev="ggregory" type="add">
        AbstractManager now implements AutoCloseable.
      </action>
      <action issue="LOG4J2-1528" dev="mikes" type="add">
        Added ability to generate Log4j 2-style XML configuration file from ConfigurationBuilder.
      </action>
      <action issue="LOG4J2-1181" dev="mikes" type="add">
        Added Logging API for Scala 2.10 and 2.11.
      </action>
      <action issue="LOG4J2-1512" dev="mikes" type="add">
        Added options to exclude stack trace from JSON, XML and YAML layouts.
      </action>
      <action issue="LOG4J2-1539" dev="ggregory" type="add">
        Added Core API Configurator.shutdown(LoggerContext, long, TimeUnit).
      </action>
      <action issue="LOG4J2-1501" dev="ggregory" type="add">
        FileAppender is now able to create files on-demand.
      </action>
      <action issue="LOG4J2-1504" dev="ggregory" type="add">
        RollingFileAppender is now able to create files on-demand.
      </action>
      <action issue="LOG4J2-1471" dev="ggregory" type="add">
        [PatternLayout] Add an ANSI option to %xThrowable.
      </action>
      <action issue="LOG4J2-1472" dev="ggregory" type="add">
        org.apache.logging.log4j.core.LoggerContext now implements Closeable.
      </action>
      <action issue="LOG4J2-1458" dev="ggregory" type="add">
        [PatternLayout] Add an ANSI option to %message.
      </action>
      <action issue="LOG4J2-1505" dev="ggregory" type="add">
        Create a Builder for the FileAppender plugin to facilitate adding attributes in the future.
      </action>
      <action issue="LOG4J2-1507" dev="ggregory" type="add">
        Allow Builders to be completely generic.
      </action>
      <action issue="LOG4J2-1508" dev="ggregory" type="add">
        Allow a Builder to subclass another Builder.
      </action>
      <action issue="LOG4J2-1516" dev="rpopma" type="add" due-to="Gary Gregory">
        Add ThreadContextMap2 interface supporting method putAll(Map&lt;String, String&gt;).
      </action>
      <action issue="LOG4J2-1519" dev="ggregory" type="add">
        Add ThreadContext.putAll(Map&lt;String, String&gt;).
      </action>
      <action issue="LOG4J2-1520" dev="ggregory" type="add">
        Add JUnit Rule implementations to manage the thread context.
      </action>
      <action issue="LOG4J2-1547" dev="ggregory" type="add">
        The Core AbstractConfiguration now tracks its LoggerContext and add Configuration.getLoggerContext().
      </action>
      <action issue="LOG4J2-1540" dev="ggregory" type="add">
        The Core AbstractManager now tracks its LoggerContext.
      </action>
      <action issue="LOG4J2-1577" dev="ggregory" type="add">
        Add a Builder to the RoutingAppender and deprecate factory method.
      </action>
      <action issue="LOG4J2-1604" dev="ggregory" type="update" due-to="Colin Hillman">
        Log4j2 TcpSocketServer in background.
      </action>
      <action issue="LOG4J2-1574" dev="ggregory" type="update">
        Allow the RollingFileAppender to use default pattern layout.
      </action>
      <action issue="LOG4J2-1556" dev="ggregory" type="update">
        Custom Log4j threads now extend Log4jThread.
      </action>
      <action issue="LOG4J2-1605" dev="ggregory" type="update">
        Improve error messages for TcpSocketServer and UdpSocketServer.
      </action>
      <action issue="LOG4J2-1458" dev="ggregory" type="update">
        Updated Jackson from 2.7.5 to 2.8.0.
      </action>
      <action issue="LOG4J2-1494" dev="ggregory" type="update">
        Updated Jackson from 2.8.0 to 2.8.1.
      </action>
      <action issue="LOG4J2-1569" dev="ggregory" type="update">
        Updated Jackson from 2.8.1 to 2.8.2.
      </action>
      <action issue="LOG4J2-1598" dev="ggregory" type="update">
        Updated Jackson from 2.8.2 to 2.8.3.
      </action>
      <action issue="LOG4J2-1495" dev="ggregory" type="update">
        Updated LMAX Disruptor from 3.3.4 to 3.3.5.
      </action>
      <action issue="LOG4J2-1496" dev="ggregory" type="update">
        Updated Kafka client from 0.9.1.0 to 0.10.0.0.
      </action>
      <action issue="LOG4J2-1533" dev="ggregory" type="update">
        Updated Kafka client from 0.10.0.0 to 0.10.0.1.
      </action>
      <action issue="LOG4J2-1487" dev="ggregory" type="update">
        Updated JMS test from ActiveMQ 5.13.3 to 5.13.4.
      </action>
      <action issue="LOG4J2-1551" dev="ggregory" type="update">
        Updated JMS test from ActiveMQ 5.13.4 to 5.14.0.
      </action>
      <action issue="LOG4J2-1757" dev="ggregory" type="update">
        Update Apache Commons Compress from 1.12 to 1.13.
      </action>
      <action issue="LOG4J2-1543" dev="ggregory" type="update">
        Removed deprecated Core API org.apache.logging.log4j.core.util.Constants.UTF_8.
      </action>
      <action issue="LOG4J2-1544" dev="ggregory" type="update">
        Removed deprecated Core API org.apache.logging.log4j.core.util.Assert.requireNonNull(T, String).
      </action>
      <action issue="LOG4J2-1545" dev="ggregory" type="update">
        Removed deprecated Web API org.apache.logging.log4j.web.WebLookup.getServletContext().
      </action>
    </release>
    <release version="2.6.2" date="2016-07-05" description="GA Release 2.6.2">
      <action issue="LOG4J2-904" dev="rgoers" type="fix" due-to="Bernhard Mähr">
        If copy and delete fails in rename action then resort to truncating the source file after copying it.
      </action>
      <action issue="LOG4J2-1250" dev="rgoers" type="fix">
        CronTriggeringPolicy was not properly setting the prevFileTime value for the PatternProcessor so
        file dates and times on rolled files were incorrect.
      </action>
      <action issue="LOG4J2-1452" dev="rpopma" type="fix" due-to="Mikael Ståldal">
        Fixed issue where reusable messages broke flow tracing logic.
      </action>
      <action issue="LOG4J2-1440" dev="rgoers" type="fix">
        Fix bug in OnStartupTriggeringPolicy that allowed it to roll over on every reconfiguration. Added
        minSize attribute.
      </action>
      <action issue="LOG4J2-1414" dev="rpopma" type="fix" due-to="Ralph Goers">
        Fixed minor issues with the 2.6.1 web site.
      </action>
      <action issue="LOG4J2-1434" dev="rpopma" type="fix" due-to="Luke Butters">
        Ensure that the thread-local StringBuilders used by Layouts to format log events to text will not
        retain excessive memory after a large message was logged.
      </action>
      <action issue="LOG4J2-1395" dev="mikes" type="add">
        Add "direct" option to ConsoleAppender for increased performance.
      </action>
      <action issue="LOG4J2-1418" dev="mikes" type="fix">
        Provide MessageFactory2 to custom Logger implementations.
      </action>
      <action issue="LOG4J2-1420" dev="rgoers" type="fix">
        RollingRandomAccessFileManager was not properly rolling over on startup and was getting a NullPointerException.
      </action>
      <action issue="LOG4J2-1417" dev="rpopma" type="fix">
        Fixed issue where Unbox utility ignored the value Constants.ENABLE_THREADLOCALS and always stored non-JDK classes in ThreadLocals.
      </action>
      <action issue="LOG4J2-1422" dev="rpopma" type="fix">
        Fixed issue where AsyncAppenderQueueFullPolicyTest sometimes hangs.
      </action>
      <action issue="LOG4J2-1445" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
        OnStartupTriggeringPolicyTest fails on Windows saying the file is used by another process.
      </action>
      <action issue="LOG4J2-1437" dev="rpopma" type="add">
        (GC) ObjectMessage and ReusableObjectMessage now avoid calling toString() on auto-boxed primitive parameters.
      </action>
      <action issue="LOG4J2-1415" dev="rpopma" type="add">
        (GC) ParameterFormatter now avoids calling toString() on auto-boxed primitive message parameters.
      </action>
      <action issue="LOG4J2-1412" dev="rpopma" type="add">
        Unbox utility's ringbuffer of StringBuilders is now configurable.
      </action>
      <action issue="LOG4J2-1432" dev="ggregory" type="update">
        Update Jackson from 2.7.4 to 2.7.5.
      </action>
      <action issue="LOG4J2-1433" dev="ggregory" type="update">
        Update Jansi from 1.11 to 1.13.
      </action>
      <action issue="LOG4J2-1444" dev="ggregory" type="update">
        Update Apache Commons Compress from 1.11 to 1.12.
      </action>
    </release>
    <release version="2.6.1" date="2016-06-05" description="GA Release 2.6.1">
      <action issue="LOG4J2-1405" dev="rgoers" type="fix">
        OnStartupTriggeringPolicy was forcing a rollover of empty files at startup and would append a second footer that was added by the prior shutdown.
      </action>
      <action issue="LOG4J2-1406" dev="rpopma" type="fix" due-to="Trask Stalnaker">
        Fixed bug in ReusableParameterizedMessage where Throwable was never updated so first error was logged over and over again and subsequent errors were not logged.
      </action>
      <action issue="LOG4J2-1409" dev="rpopma" type="fix" due-to="Shahan">
        Fixed ArrayIndexOutOfBoundsException that may occur in ReusableParameterizedMessage.
      </action>
      <action issue="LOG4J2-997" dev="rgoers" type="fix" due-to="Maytee Chinavanichkit">
        Add filter and remove filter were not working properly in AbstractFilterable.
      </action>
      <action issue="LOG4J2-1032" dev="rgoers" type="fix">
        Changed RenameAction to use java.nio to better report rename failures.
      </action>
      <action issue="LOG4J2-1407" dev="ggregory" type="fix">
        Fixed misleading WARN log events from Log4j about message factories and unexpected formatting.
      </action>
      <action issue="LOG4J2-1408" dev="ggregory" type="fix">
        Added the module log4j-liquibase to BOM POM.
      </action>
      <action issue="LOG4J2-1180" dev="ggregory" type="fix">
        Logger cache now accounts for message factory.
      </action>
      <action issue="LOG4J2-1402" dev="rgoers" type="fix">
        Fix regression in properties configuration to support arbitrary component ids.
      </action>
      <action issue="LOG4J2-1385" dev="ggregory" type="update">
        (GC) CSV layouts should not create a new CSVPrinter for each log event. Requires Apache Commons CSV 1.4.
      </action>
      <action issue="LOG4J2-1398" dev="ggregory" type="update">
        Update liquibase-core from 3.4.2 to 3.5.1.
      </action>
      <action issue="LOG4J2-1399" dev="ggregory" type="update">
        Update Apache Commons CSV from 1.3 to 1.4.
      </action>
      <action issue="LOG4J2-1411" dev="mattsicker" type="add">
        Added documentation about plugin builders compared to factories.
      </action>
      <action issue="LOG4J2-1394" dev="mattsicker,mikes" type="fix">
        Fixed minor issues with the 2.6 web site.
      </action>
    </release>
    <release version="2.6" date="2016-05-25" description="GA Release 2.6">
      <action issue="LOG4J2-1270" dev="rpopma" type="add">
        (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.
      </action>
      <action issue="LOG4J2-1297" dev="rpopma" type="add">
        (GC) Added manual page on garbage-free logging.
      </action>
      <action issue="LOG4J2-1373" dev="rpopma" type="add">
        (GC) Update Logger wrapper Generator tool to generate methods for the new Logger methods.
      </action>
      <action issue="LOG4J2-1356" dev="mikes" type="update">
        (GC) GelfLayout does now support garbage-free logging (with compressionType=OFF).
      </action>
      <action issue="LOG4J2-1326" dev="rpopma" type="add">
        (GC) Added methods to the Logger interface for logging CharSequence messages.
      </action>
      <action issue="LOG4J2-1344" dev="rpopma" type="add">
        (GC) FileAppender, RollingFileAppender and MemoryMappedFileAppender are now also garbage-free by default.
      </action>
      <action issue="LOG4J2-1343" dev="rpopma" type="update">
        (GC) ConsoleAppender is now garbage-free by default. This logic is reusable for all AbstractOutputStreamAppender subclasses.
      </action>
      <action issue="LOG4J2-1278" dev="rpopma" type="add">
        (GC) Added unrolled varargs methods to Logger API, added Unbox utility to avoid auto-boxing when logging primitive values.
      </action>
      <action issue="LOG4J2-1318" dev="rpopma" type="update">
        (GC) Avoid allocating unnecessary temporary objects in LoggerContext's getLogger methods.
      </action>
      <action issue="LOG4J2-1333" dev="rpopma" type="update">
        (GC) Avoid allocating unnecessary temporary objects in MarkerManager's getMarker methods.
      </action>
      <action issue="LOG4J2-1321" dev="rpopma" type="update">
        (GC) Avoid allocating unnecessary temporary objects in PatternLayout's NamePatternConverter and ClassNamePatternConverter.
      </action>
      <action issue="LOG4J2-1271" dev="rpopma" type="add">
        (GC) Add MessageFactory that avoid allocation by reusing a cached ParameterizedMessage instance.
      </action>
      <action issue="LOG4J2-1271" dev="rpopma" type="update">
        (GC) ParameterizedMessage optimizations to avoid or at least postpone allocating temporary objects.
      </action>
      <action issue="LOG4J2-1283" dev="rpopma" type="update">
        (GC) Provide ThreadLocal-based gc-free caching mechanism in DatePatternConverter for non-webapps.
      </action>
      <action issue="LOG4J2-1293" dev="rpopma" type="add">
        (GC) Add interface StringBuilderFormattable to enable converting Messages and parameters to text without allocating temporary objects.
        ParameterizedMessage, ObjectMessage, SimpleMessage and ThreadDumpMessage now implement StringBuilderFormattable.
      </action>
      <action issue="LOG4J2-1291" dev="rpopma" type="update">
        (GC) Update PatternLayout to utilize gc-free mechanism for LogEvent processing.
      </action>
      <action issue="LOG4J2-1292" dev="rpopma" type="update">
        (GC) Update RandomAccessFileAppender and RollingRandomAccessFileAppender to utilize gc-free Layout.encode() method.
      </action>
      <action issue="LOG4J2-1274" dev="rpopma" type="add">
        (GC) Add encode(LogEvent, ByteBufferDestination) method to Layout API to enable converting LogEvents to bytes without creating temporary objects.
      </action>
      <action issue="LOG4J2-1281" dev="rpopma" type="fix">
        (GC) LoggerConfig.getProperties() should not allocate on each call.
      </action>
      <action issue="LOG4J2-1272" dev="rpopma" type="update">
        (GC) Improve LoggerConfig's data structure for AppenderControl objects to avoid allocating temporary objects during
        traversal for each log event.
      </action>
      <action issue="LOG4J2-1269" dev="rpopma" type="fix">
        (GC) AsyncLogger should use thread-local translator by default.
      </action>
      <action issue="LOG4J2-623" dev="rpopma" type="fix">
        Generate MDC properties as a JSON map in JSONLayout, with option to output as list of map entries.
      </action>
      <action issue="LOG4J2-1362" dev="rpopma" type="add" due-to="Gary Gregory">
        Added a YAML layout.
      </action>
      <action issue="LOG4J2-1387" dev="rpopma" type="fix">
        Fixed memory leak related to shutdown hook.
      </action>
      <action issue="LOG4J2-1179" dev="rpopma" type="add">
        Documented benchmark results comparing Log4j 2 performance to other logging libraries.
      </action>
      <action issue="LOG4J2-1382" dev="rpopma" type="fix">
        Copying a MutableLogEvent using Log4jLogEvent.Builder should not unnecessarily obtain caller location information.
      </action>
      <action issue="LOG4J2-1011" dev="mikes" type="add">
        Document dependencies for layouts.
      </action>
      <action issue="LOG4J2-621" dev="ggregory" type="add" due-to="Lee Theobald, Kamal Mettananda, Gary Gregory">
        Pattern to drop first N package parts.
      </action>
      <action issue="LOG4J2-494" dev="rgoers" type="add" due-to="Philipp Knobel">
        Support merging configurations to for a composite configuration.
      </action>
      <action issue="LOG4J2-1357" dev="mikes" type="add">
        Option to not log stack traces for logged Throwables in GelfLayout.
      </action>
      <action issue="LOG4J2-1375" dev="rpopma" type="update">
        Update SLF4J from 1.7.13 to 1.7.21.
      </action>
      <action issue="LOG4J2-1374" dev="rpopma" type="update">
        Migrate tests from Logback 1.1.3 to 1.1.7.
      </action>
      <action issue="LOG4J2-1384" dev="ggregory" type="update">
        Update Apache Commons CSV from 1.2 to 1.3.
      </action>
      <action issue="LOG4J2-1372" dev="rgoers" type="fix" due-to="Kamal Mettananda, Gary Gregory">
        XMLLayout indents, but not the first child tag (Event).
      </action>
      <action issue="LOG4J2-1363" dev="rgoers" type="fix">
        Properties Configuration did not support includeLocation attribute on Loggers.
      </action>
      <action issue="LOG4J2-1263" dev="rgoers" type="fix">
        The ConfigurationSource was not saved for BuiltConfigurations so monitor interval had no effect.
      </action>
      <action issue="LOG4J2-1369" dev="ggregory" type="fix" due-to="Alex Birch, Gary Gregory">
        "xz" compression results in plaintext, uncompressed files.
      </action>
      <action issue="LOG4J2-1365" dev="mikes" type="update">
        (Log4j-internal) Provide message text as CharSequence for some message types to optimize some layouts.
      </action>
      <action issue="LOG4J2-1368" dev="rpopma" type="fix">
        (Log4j-internal) StatusLogger dropped exceptions when logging parameterized messages.
      </action>
      <action issue="LOG4J2-1348" dev="ggregory" type="add" due-to="Greg Thomas, Gary Gregory">
        Add an AutoCloseable ThreadContext class: CloseableThreadContext.
      </action>
      <action issue="LOG4J2-1345" dev="rpopma" type="update">
        (Doc) Clarify documentation for properties that control Log4j behaviour.
      </action>
      <action issue="LOG4J2-1336" dev="ggregory" type="fix" due-to="Zbynek Vyskovsky">
        LoggerFactory in 1.2 API module is not compatible with 1.2.
      </action>
      <action issue="LOG4J2-1354" dev="ggregory" type="fix" due-to="Arkadiusz Adolph">
        No configuration reload is triggered under Windows when replacing the configuration file with one that has older last modified date.
      </action>
      <action issue="LOG4J2-1346" type="fix">
        Exception from Log4jServletContextListener prevents jetty-maven-plugin run-forked.
      </action>
      <action issue="LOG4J2-1339" dev="rpopma" type="fix">
        (Perf) AsyncLogger performance optimization: avoid calling instanceof TimestampMessage in hot path.
      </action>
      <action issue="LOG4J2-1324" dev="rpopma" type="fix">
        Improve error handling in the Async Logger background thread: the new default exception handler no longer rethrows the error.
      </action>
      <action issue="LOG4J2-1309" dev="ggregory" type="fix">
        Configuration file error does not show cause exception.
      </action>
      <action issue="LOG4J2-1299" dev="ggregory" type="add">
        Add pattern converter for thread id and priority in PatternLayout.
      </action>
      <action issue="LOG4J2-1289" dev="ggregory" type="fix">
        Change flow logging text from "entry' to "Enter" and "exit" to "Exit".
      </action>
      <action issue="LOG4J2-1284" dev="rpopma" type="fix">
        Made default MessageFactory configurable.
      </action>
      <action issue="LOG4J2-1280" dev="ggregory" type="fix">
        Deprecate org.apache.logging.log4j.util.MessageSupplier.
      </action>
      <action issue="LOG4J2-1280" dev="rpopma" type="fix">
        Logger methods taking Supplier parameters now correctly handle cases where the supplied value is a Message.
      </action>
      <action issue="LOG4J2-1268" dev="rpopma" type="fix">
        FixedDateFormat was incorrect for formats having MMM with the French locale.
      </action>
      <action issue="LOG4J2-1255" dev="rgoers" type="update">
        Add enhanced entry and exit methods.
      </action>
      <action issue="LOG4J2-124" dev="rgoers" type="add">
        Add shutdown methods to LogManager.
      </action>
      <action issue="LOG4J2-1222" dev="rgoers" type="fix">
        Creation of a LoggerContext will fail if shutdown is in progress. LogManager will default to SimpleLogger instead.
      </action>
      <action issue="LOG4J2-1221" dev="rpopma" type="add" due-to="Michael Barker">
        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.
      </action>
      <action issue="LOG4J2-1080" dev="rpopma" type="add">
        Added option to discard events below a certain log level if the async logger ring buffer
        or async appender queue is full.
      </action>
      <action issue="LOG4J2-1237" dev="ggregory" type="add" due-to="Mike Calmus, Gary Gregory">
        Make PatternLayout header and footer accept a pattern.
      </action>
      <action issue="LOG4J2-1244" dev="ggregory" type="add" due-to="Anshu Garg, Remko Popma, Gary Gregory">
        Make header and footer values customizable in JSONLayout.
      </action>
      <action issue="LOG4J2-1245" dev="ggregory" type="add">
        Make CSV Layout header and footers accept patterns.
      </action>
      <action issue="LOG4J2-1192" dev="ggregory" type="add" due-to="Jörg Bretschneider, Gary Gregory">
        Dynamic Subject for SMTP Appender.
      </action>
      <action issue="LOG4J2-1277" dev="ggregory" type="add" due-to="Gary Gregory, Ludovic Hochet">
        FormattedMessage, MessageFormatMessage and StringFormattedMessage should support passing in a Locale to ensure appropriate formatting.
      </action>
      <action issue="LOG4J2-1260" dev="ggregory" type="fix" due-to="Blake Day, Gary Gregory">
        TlsSyslogFrame calculates message length incorrectly.
      </action>
      <action issue="LOG4J2-1258" dev="ggregory" type="fix" due-to="Francis Lalonde">
        Async DynamicThresholdFilter does not use the log event's context map.
      </action>
      <action issue="LOG4J2-1232" dev="ggregory" type="fix" due-to="Nikolai">
        Incorrect log rotation in last week of year.
      </action>
      <action issue="LOG4J2-1248" dev="rpopma" type="fix">
        Fixed broken nanotime in pattern layout.
      </action>
      <action issue="LOG4J2-908" dev="ggregory" type="fix" due-to="Konstantinos Liakos, Patrick Flaherty, Robin Coe, Gary Gregory">
        JSONLayout doesn't add a comma between log events.
      </action>
      <action issue="LOG4J2-1230" dev="ggregory" type="fix" due-to="Vladimir Hudec, Ralph Goers, Gary Gregory">
        Don't concatenate SYSLOG Messages.
      </action>
      <action issue="LOG4J2-1238" dev="ggregory" type="fix">
        org.apache.logging.log4j.core.net.TcpSocketManager and other classes does not report internal exceptions to the status logger.
      </action>
      <action issue="LOG4J2-1212" dev="rpopma" type="fix">
        Fix documentation to specify the correct default wait strategy used by async loggers.
      </action>
      <action issue="LOG4J2-1215" dev="ggregory" type="fix" due-to="Erik Kemperman">
        Documentation/XSD inconsistencies.
      </action>
      <action issue="LOG4J2-1276" dev="ggregory" type="fix" due-to="Ludovic Hochet">
        LoggerMessageSupplierTest and LoggerSupplierTest are Locale sensitive.
      </action>
      <action issue="LOG4J2-1380" dev="ggregory" type="update">
        Update Jackson from 2.7.3 to 2.7.4.
      </action>
      <action issue="LOG4J2-1304" dev="ggregory" type="update">
        Update Jackson from 2.7.0 to 2.7.2.
      </action>
      <action issue="LOG4J2-1253" dev="ggregory" type="update">
        Update LMAX Disruptor from 3.3.2 to 3.3.4.
      </action>
      <action issue="LOG4J2-1219" dev="ggregory" type="update">
        Update SLF4J from 1.7.12 to 1.7.13.
      </action>
      <action issue="LOG4J2-1239" dev="ggregory" type="update">
        Update Jackson from 2.6.3 to 2.6.4.
      </action>
      <action issue="LOG4J2-1249" dev="ggregory" type="update">
        Update Jackson from 2.6.4 to 2.7.0.
      </action>
      <action issue="LOG4J2-1351" dev="ggregory" type="update">
        Update Jackson from 2.7.2 to 2.7.3.
      </action>
      <action issue="LOG4J2-1240" dev="ggregory" type="update">
        Update Liquibase from 3.3.5 to 3.4.2.
      </action>
      <action issue="LOG4J2-1294" dev="ggregory" type="update">
        Update Kafka client from 0.9.0.0 to 0.9.0.1.
      </action>
      <action issue="LOG4J2-1352" dev="ggregory" type="update">
        Update javax.mail from 1.5.4 to 1.5.5.
      </action>
      <action issue="LOG4J2-1358" dev="ggregory" type="update">
        Update Apache Commons Compress from 1.10 to 1.11.
      </action>
      <action issue="LOG4J2-1388" dev="rpopma" type="update">
        Update Google java-allocation-instrumenter from 3.0 to 3.0.1.
      </action>
      <action issue="LOG4J2-1233" dev="ggregory" type="update" due-to="Bahri Gencsoy">
        Misleading Value In Properties Example.
      </action>
      <action issue="LOG4J2-1251" dev="mattsicker" type="fix" due-to="Romain Manni-Bucau">
        Fix JUL bridge issue where LogRecord.getParameters() is used when null.
      </action>
      <action issue="LOG4J2-1254" dev="rpopma" type="fix" due-to="Josh Trow">
        Fix typo in Flow Tracing documentation.
      </action>
      <action issue="LOG4J2-920" dev="mattsicker" type="fix" due-to="Ludovic Hochet">
        ClassNotFoundException for BundleContextSelector when initialising in an OSGi environment.
      </action>
      <action issue="LOG4J2-1300" dev="mattsicker" type="update">
        Remove serializability from classes that don't need it.
      </action>
      <action issue="LOG4J2-1303" dev="mattsicker" type="add">
        Add documentation links to runtime dependencies in each component intro page.
      </action>
      <action issue="LOG4J2-1275" dev="mattsicker" type="fix" due-to="Ludovic Hochet">
        Fix RollingAppenderNoUnconditionalDeleteTest repeat test runs from failing.
      </action>
      <action issue="LOG4J2-1262" dev="mattsicker" type="fix">
        Stop throwing unnecessary exception in Log4jServletContextListener.contextDestroyed().
      </action>
      <action issue="LOG4J2-1252" dev="mattsicker" type="add">
        JeroMqAppender should support layouts.
      </action>
      <action issue="LOG4J2-1227" dev="mattsicker" type="fix" due-to="Olivier Lemasle">
        NullPointerException in MapLookup.lookup if the event is null.
      </action>
      <action issue="LOG4J2-1306" dev="mattsicker" type="update">
        JeroMqAppender should use ShutdownCallbackRegistry instead of runtime hooks.
      </action>
      <action issue="LOG4J2-1217" dev="mattsicker" type="add" due-to="Thies Wellpott">
        PatternLayout option to limit length of text.
      </action>
      <action issue="LOG4J2-1308" dev="mattsicker" type="update">
        Remove need to pre-specify appender et al. identifiers in property file config format.
      </action>
      <action issue="LOG4J2-1050" dev="mattsicker" type="fix" due-to="Adam Retter">
        Add a Log4jLookup class to help write log files relative to log4j2.xml.
      </action>
      <action issue="LOG4J2-1133" dev="mattsicker" type="add">
        Add JNDI lookup documentation.
      </action>
      <action issue="LOG4J2-1310" dev="mattsicker" type="fix">
        JndiLookup mindlessly casts to String and should use String.valueOf().
      </action>
      <action issue="LOG4J2-1206" dev="mattsicker" type="update">
        org.apache.logging.log4j.core.LoggerContext#updateLoggers should call firePropertyChangeEvent.
      </action>
      <action issue="LOG4J2-248" dev="mattsicker" type="fix">
        Log4jWebInitializerImpl: Use Thread instead of Class for fallback classloader.
      </action>
      <action issue="LOG4J2-1169" dev="mattsicker" type="add" due-to="Gerald Kritzinger">
        PatternLayout: Possible variable substitution in equals substitution parameter.
      </action>
      <action issue="LOG4J2-1322" dev="mattsicker" type="update">
        Update Log4j 1.x migration guide to include information about system property lookup syntax changes.
      </action>
      <action issue="LOG4J2-1330" dev="mattsicker" type="fix">
        Fix NoClassDefFoundError in ReflectionUtil on Google App Engine.
      </action>
    </release>
    <release version="2.5" date="2015-12-06" description="GA Release 2.5">
      <action issue="LOG4J2-324" dev="rpopma" type="fix">
        Reduced memory usage of status messages in bounded queue; support zero-length queue that stores no messages.
      </action>
      <action issue="LOG4J2-1173" dev="rpopma" type="fix">
        Fixed rollover error when copying to a directory mapped to a remote Linux host.
      </action>
      <action issue="LOG4J2-435" dev="rpopma" type="add" due-to="Robert Schaft">
        Added support for custom delete actions triggered by a rollover.
      </action>
      <action issue="LOG4J2-649" dev="rgoers" type="update" due-to="Aleksey Zvolinsky">
        Add PurgePolicy and IdlePurgePolicy to RoutingAppender.
      </action>
      <action issue="LOG4J2-1202" dev="rgoers" type="update">
        Remove ConfigurationMonitor. The WatchManager is now used to check for configuration changes.
      </action>
      <action issue="LOG4J2-1195" dev="mikes" type="fix" due-to="Melvin Du">
        Make KafkaAppender support SerializedLayout.
      </action>
      <action issue="LOG4J2-89" dev="rgoers" type="add">
        Allow rollover to occur at any time. Add CronTriggeringPolicy.
      </action>
      <action issue="LOG4J2-381" dev="rgoers" type="fix" due-to="Anthony Baldocchi">
        Allow triggering policy and rollover strategy to be modified during reconfiguration.
      </action>
      <action issue="LOG4J2-1136" dev="rgoers" type="add">
        Add support for JSR 223 scripts in filters and the PatternSelector.
      </action>
      <action issue="LOG4J2-1168" dev="ggregory" type="add" due-to="Steven Swor">
        Add getters for source and destination file in file rename action.
      </action>
      <action issue="LOG4J2-1175" dev="ggregory" type="add">
        Add getters for classes in org.apache.logging.log4j.core.appender.rolling.action.
      </action>
      <action issue="LOG4J2-898" dev="rpopma" type="add">
        Added system property to allow users to control whether messages should be formatted in the background.
      </action>
      <action issue="LOG4J2-1178" dev="ggregory" type="add">
        Support use-case for JDBC's CommonDataSource.setLogWriter(PrintWriter) and java.sql.DriverManager.setLogWriter(PrintWriter).
      </action>
      <action issue="LOG4J2-1187" dev="ggregory" type="add">
        Support use case for java.sql.DriverManager.setLogStream(PrintStream).
      </action>
      <action issue="LOG4J2-1029" dev="rpopma" type="fix" due-to="Stefan Leonhartsberger">
        Performance improvement when gathering location information.
      </action>
      <action issue="LOG4J2-1172" dev="rpopma" type="fix">
        Fixed ThreadLocal leak [AsyncLogger$Info] on Tomcat when using AsyncLoggerContextSelector.
      </action>
      <action issue="LOG4J2-1176" dev="rpopma" type="fix">
        Fixed memory leak when log4j jars are in Tomcat's lib folder.
      </action>
      <action issue="LOG4J2-1180" dev="ggregory" type="fix" due-to="Mikael Ståldal">
        Logger cache does not account for message factory.
      </action>
      <action issue="LOG4J2-879" dev="rpopma" type="fix">
        Documentation: fixed minor issues with the site and manual pages.
      </action>
      <action issue="LOG4J2-999" dev="rpopma" type="fix" due-to="Joan Balagueró">
        RollingFileAppender should also roll over when log event time is equal to rollover time, not only when later.
      </action>
      <action issue="LOG4J2-873" dev="rpopma" type="fix" due-to="Martin Dickins, LC, Luke Woodward">
        Fixed bug where omitting the &lt;display-name&gt; element in web.xml caused incorrect log4j initialization,
        resulting in memory leaks when the web application was stopped or reloaded.
      </action>
      <action issue="LOG4J2-323" dev="rpopma" type="fix">
        Better web app support for async loggers: Fixed a memory leak that occurred when the logging jars are placed
        in the container's classpath and the configuration file uses AsyncRoot/AsyncLogger.
        The problem was that the first web application started the Disruptor background thread [AsyncLoggerConfig-1] but did not stop it until all web apps are stopped.
        Each web application now has its own Disruptor which is stopped/started together with the web app.
      </action>
      <action issue="LOG4J2-493" dev="rpopma" type="fix">
        Better web app support for async loggers: it is now possible to place the logging jars in the container's
        classpath when making all loggers asynchronous by using AsyncLoggerContextSelector. This fixes a problem where
        logging would stop working after stopping and restarting a web application.
      </action>
      <action issue="LOG4J2-1171" dev="rpopma" type="fix">
        Use servlet context name for logger context name when available.
      </action>
      <action issue="LOG4J2-1159" dev="rpopma" type="fix">
        Fixed a ThreadLocal memory leak in Tomcat8 that mentions AsyncLoggers when Async Loggers are not used.
      </action>
      <action issue="LOG4J2-1166" dev="rpopma" type="fix">
        AbstractConfiguration executor should use a DaemonThreadFactory.
      </action>
      <action issue="LOG4J2-1165" dev="rpopma" type="fix">
        Improve Log4j initialization status messages.
      </action>
      <action issue="LOG4J2-1156" dev="rpopma" type="fix">
        Web site corrections and updates.
      </action>
      <action issue="LOG4J2-1158" dev="ggregory" type="fix" due-to="Michael Fortin, Gary Gregory">
        Log4J JUL adapter is using MessageFormat on String passed by java.util.function.Supplier&lt;String>.
      </action>
      <action issue="LOG4J2-801" dev="mattsicker" type="fix">
        org.apache.logging.log4j.core.Logger should be serializable.
      </action>
      <action issue="LOG4J2-1157" dev="mattsicker" type="fix" due-to="Norbert Bartels">
        Fix compilation error for classes annotated with @Plugin.
      </action>
      <action issue="LOG4J2-948" dev="mattsicker" type="fix" due-to="Andrew Flower">
        Fix plugin documentation error about Converters.
      </action>
      <action issue="LOG4J2-1193" dev="ggregory" type="fix">
        Prefix all thread names Log4j creates with "Log4j2-".
      </action>
      <action issue="LOG4J2-1194" dev="ggregory" type="fix" due-to="Adam Brin">
        Documentation does not match parameters for LoggerNameLevelRewritePolicy.
      </action>
      <action issue="LOG4J2-1196" dev="mattsicker" type="fix" due-to="René Zanner">
        MongoDbConnection does not close MongoClient.
      </action>
      <action issue="LOG4J2-1174" dev="ggregory" type="update">
        Update Jackson from 2.6.2 to 2.6.3.
      </action>
      <action issue="LOG4J2-1207" dev="ggregory" type="update">
        Update kafka-clients from 0.8.2.2 to 0.9.0.0.
      </action>
    </release>
    <release version="2.4.1" date="2015-10-08" description="GA Release 2.4.1">
      <action issue="LOG4J2-1129" dev="rgoers" type="add">
        Allow PatternLayout to select a pattern to use based on some selection criteria.
      </action>
      <action issue="LOG4J2-1145" dev="ggregory" type="add">
        Add %equals to PatternLayout to test and replace patterns with strings.
      </action>
      <action issue="LOG4J2-1147" dev="ggregory" type="add">
        Add %equalsIgnoreCase to PatternLayout to test and replace patterns with strings.
      </action>
      <action issue="LOG4J2-1146" dev="ggregory" type="add">
        Add %notEmpty to PatternLayout to avoid output of patterns where all variables are empty.
      </action>
      <action issue="LOG4J2-1020" dev="mikes" type="add">
        Add possibility to set shutdown timeout on AsyncAppender.
      </action>
      <action issue="LOG4J2-1153" dev="rpopma" type="fix">
        Fixed NullPointerException when only root logger is defined (and no named loggers) in configuration properties file.
      </action>
      <action issue="LOG4J2-1140" dev="rpopma" type="fix">
        Fixed bug where headers were not being written to first file with RollingFileAppender.
      </action>
      <action issue="LOG4J2-1149" dev="rpopma" type="fix">
        Fixed bug where PatternLayout predefined date pattern with time zone always renders default date format.
      </action>
      <action issue="LOG4J2-1050" dev="rpopma" type="fix">
        Fixed Log4jLookup.
      </action>
      <action issue="LOG4J2-1142" dev="rpopma" type="fix">
        Fix potential memory leak in web applications by using a straight ThreadLocal field instead of subclassing ThreadLocal.
      </action>
      <action issue="LOG4J2-1135" dev="rpopma" type="fix">
        Compression on rollover was broken: log file was renamed to .zip but not compressed.
      </action>
      <action issue="LOG4J2-1127" dev="ggregory" type="fix">
        log4j2.xml cannot be parsed on Oracle Weblogic 12c.
      </action>
      <action issue="LOG4J2-1132" dev="ggregory" type="fix">
        Do not use MongoDB driver 2.13.3 deprecated methods.
      </action>
      <action issue="LOG4J2-1144" dev="ggregory" type="fix">
        Add %markerSimpleName in pattern layout should evaluate to marker name (not toString()).
      </action>
      <action issue="LOG4J2-1126" dev="ggregory" type="fix">
        Web site corrections and updates.
      </action>
      <action issue="LOG4J2-1151" dev="rpopma" type="update">
        Performance improvement: backport Java 8 fast ISO-8859-1 String to byte[] encoder to AbstractStringLayout.
      </action>
      <action issue="LOG4J2-935" dev="rpopma" type="update">
        Performance improvement when converting Strings to byte[] arrays.
      </action>
      <action issue="LOG4J2-1040" dev="ggregory" type="update">
        Update MongoDB driver from 2.13.3 to 3.0.4.
      </action>
      <action issue="LOG4J2-1128" dev="ggregory" type="update">
        Reuse StringBuilder to improve performance for String-based layouts: CSV, GELF, HTML, RFC524, Syslog.
      </action>
      <action issue="LOG4J2-1131" dev="ggregory" type="update">
        Update mongo-java-driver from 2.13.2 to 2.13.3.
      </action>
      <action issue="LOG4J2-1138" dev="ggregory" type="update">
        Do not use Jackson deprecated methods.
      </action>
      <action issue="LOG4J2-1139" dev="ggregory" type="update">
        Update Jackson from 2.6.1 to 2.6.2.
      </action>
      <action issue="LOG4J2-1150" dev="ggregory" type="update">
        Update kafka-clients from 0.8.2.1 to 0.8.2.2.
      </action>
    </release>
    <release version="2.4" date="2015-09-20" description="GA Release 2.4">
      <action issue="LOG4J2-635" dev="rgoers" type="add">
        Add support for configuration via Properties.
      </action>
      <action issue="LOG4J2-952" dev="rgoers" type="add">
        Add ConfigurationBuilder for programmatic configuration.
      </action>
      <action issue="LOG4J2-1017" dev="ggregory" type="update">
        Update Java platform from Java 6 to 7. From this version onwards, log4j 2 requires Java 7.
      </action>
      <action issue="LOG4J2-599" dev="rpopma" type="add">
        Added support for Java 8 lambda expressions to lazily construct a log message only if
              the requested log level is enabled.
      </action>
      <action issue="LOG4J2-1118" dev="rpopma" type="add">
        Updated Logger wrapper generator tool to add Java 8 lambda support for custom log levels.
      </action>
      <action issue="LOG4J2-1107" dev="ggregory" type="add" due-to="Mikael Ståldal">
        New Appender for Apache Kafka.
      </action>
      <action issue="LOG4J2-1113" dev="ggregory" type="add" due-to="Gary Gregory">
        New publisher Appender for ZeroMQ (using JeroMQ).
      </action>
      <action issue="LOG4J2-1088" dev="ggregory" type="add" due-to="Gary Gregory">
        Add Comma Separated Value (CSV) layouts for parameter and event logging.
      </action>
      <action issue="LOG4J2-812" dev="rgoers" type="update">
        PatternLayout timestamp formatting performance improvement: replaced synchronized SimpleDateFormat with
        Apache Commons FastDateFormat. This and better caching resulted in a ~3-30X faster timestamp formatting.
      </action>
      <action issue="LOG4J2-1097" dev="rpopma" type="update">
        PatternLayout timestamp formatting performance improvement: predefined date formats (and variants using
        a period '.' millisecond separator instead of ',') are now formatted ~2-10X faster than other date formats.
      </action>
      <action issue="LOG4J2-1096" dev="rpopma" type="update">
        Improved performance of ParameterizedMessage::getFormattedMessage by ~2X.
      </action>
      <action issue="LOG4J2-1120" dev="rpopma" type="update">
        LoggerConfig performance improvements: avoid unnecessary lock acquisition, use more efficient data structure.
      </action>
      <action issue="LOG4J2-1125" dev="rpopma" type="update">
        PatternLayout performance improvement by caching and reusing a ThreadLocal StringBuilder.
      </action>
      <action issue="LOG4J2-1121" dev="rpopma" type="fix">
        Fixed potential race condition on reconfiguration. Introduced ReliabilityStrategy to facilitate
        switching between different mechanisms for preventing log events from being dropped on reconfiguration.
      </action>
      <action issue="LOG4J2-1114" dev="ggregory" type="update">
        Add thread name to status logger layout.
      </action>
      <action issue="LOG4J2-1123" dev="ggregory" type="fix">
        Core Configurator.initialize(String, ClassLoader, String) fails to work when config location is a file path.
      </action>
      <action issue="LOG4J2-1117" dev="ggregory" type="fix" due-to="Marcus Thiesen">
        OutputStreamManager in ConsoleAppender leaking managers.
      </action>
      <action issue="LOG4J2-1044" dev="rgoers" type="fix">
        Write pending events to Flume when the appender is stopped.
      </action>
      <action issue="LOG4J2-1108" dev="ggregory" type="fix" due-to="Mikael Ståldal">
        NullPointerException when passing null to java.util.logging.Logger.setLevel().
      </action>
      <action issue="LOG4J2-1110" dev="ggregory" type="fix">
        org.apache.logging.log4j.jul.CoreLogger.setLevel() checks for security permission too late.
      </action>
      <action dev="rpopma" type="remove">
        Removed experimental interface LevelLogger which got committed to master by mistake.
      </action>
      <action issue="LOG4J2-1010" dev="rgoers" type="update">
        Pass log event when interpolating logger properties.
      </action>
      <action issue="LOG4J2-1090" dev="ggregory" type="add">
        Add Core Configurator APIs to change a logger's level.
      </action>
      <action issue="LOG4J2-1105" dev="ggregory" type="add" due-to="Gary Gregory">
        Add API org.apache.logging.log4j.Level.isInRange(Level, Level).
      </action>
      <action issue="LOG4J2-1106" dev="ggregory" type="add" due-to="Gary Gregory">
        Add a LevelRangeFilter class.
      </action>
      <action issue="LOG4J2-1074" dev="rpopma" type="add">
        Added support for system nanosecond time in pattern layout.
      </action>
      <action issue="LOG4J2-1075" dev="rpopma" type="add">
        Added support for compressing to bzip2 format on file rollover.
      </action>
      <action issue="LOG4J2-1077" dev="ggregory" type="add">
        Support additional Apache Commons Compress compression formats on rollover: Deflate, Pack200, XY.
      </action>
      <action issue="LOG4J2-767" dev="ggregory" type="add" due-to="Mikael Ståldal">
        New module for Liquibase integration.
      </action>
      <action issue="LOG4J2-1023" dev="ggregory" type="add" due-to="Mikael Ståldal">
        New RewritePolicy for changing level of a log event.
      </action>
      <action issue="LOG4J2-1015" dev="ggregory" type="add" due-to="Daniel Marcotte">
        Add a way to route messages based on the %marker in Layout for RoutingAppender.
      </action>
      <action issue="LOG4J2-1050" dev="ggregory" type="add" due-to="Adam Retter">
        Add a Log4jLookup class to help write log files relative to log4j2.xml.
      </action>
      <action issue="LOG4J2-1057" dev="ggregory" type="add">
        Add API org.apache.logging.log4j.LogManager.getFormatterLogger().
      </action>
      <action issue="LOG4J2-1066" dev="ggregory" type="add" due-to="Charles Allen">
        Expose Log4jContextFactory's ShutdownCallbackRegistry.
      </action>
      <action issue="LOG4J2-1084" dev="ggregory" type="fix" due-to="Philipp Schneider">
        Misleading StatusLogger WARN event in LogManager with java.util.Map.
      </action>
      <action issue="LOG4J2-1051" dev="ggregory" type="fix" due-to="Lukasz Lenart">
        NoClassDefFoundError when starting app on Google App Engine.
      </action>
      <action issue="LOG4J2-684" dev="ggregory" type="fix" due-to="Joern Huxhorn, Mauro Molinari">
        ExtendedThrowablePatternConverter does not print suppressed exceptions.
      </action>
      <action issue="LOG4J2-1069" dev="ggregory" type="fix" due-to="Sam Braam">
        Improper handling of JSON escape chars when deserializing JSON log events.
      </action>
      <action issue="LOG4J2-1068" dev="ggregory" type="fix" due-to="Andy McMullan">
        Exceptions not logged when using TcpSocketServer + SerializedLayout.
      </action>
      <action issue="LOG4J2-1067" dev="ggregory" type="fix" due-to="Sam Braam">
        ThrowableProxy getExtendedStackTraceAsString throws NPE on deserialized nested exceptions.
      </action>
      <action issue="LOG4J2-1049" dev="rpopma" type="fix" due-to="Robert Schaft">
        AsyncAppender now resets the thread interrupted flag after catching InterruptedException.
      </action>
      <action issue="LOG4J2-1048" dev="rpopma" type="fix" due-to="Nikhil">
        FileConfigurationMonitor unnecessarily calls System.currentTimeMillis() causing high CPU usage.
      </action>
      <action issue="LOG4J2-1037" dev="ggregory" type="fix" due-to="Marc Dergacz">
        Backward compatibility issue in log4j-1.2-api NDC pop() and peek().
      </action>
      <action issue="LOG4J2-1025" dev="ggregory" type="fix" due-to="Mikael Ståldal">
        Custom java.util.logging.Level gives null Log4j Level and causes NPE.
      </action>
      <action issue="LOG4J2-1033" dev="ggregory" type="fix" due-to="Mikael Ståldal">
        SimpleLogger creates unnecessary Map objects by calling ThreadContext.getContext() instead of getImmutableContext().
      </action>
      <action issue="LOG4J2-1026" dev="ggregory" type="fix">
        HighlightConverter does not obey noConsoleNoAnsi.
      </action>
      <action issue="LOG4J2-1019" dev="ggregory" type="fix">
        ZipCompressAction leaves files open until GC when an IO error takes place.
      </action>
      <action issue="LOG4J2-1020" dev="ggregory" type="fix">
        GzCompressAction leaves files open until GC when an IO error takes place.
      </action>
      <action issue="LOG4J2-1038" dev="ggregory" type="fix" due-to="Gili">
        Incorrect documentation for layout default charset.
      </action>
      <action issue="LOG4J2-1042" dev="ggregory" type="fix" due-to="Guillaume Turri">
        Socket and Syslog appenders don't take timeout into account at startup.
      </action>
      <action issue="LOG4J2-934" dev="ggregory" type="fix" due-to="Kenneth Gendron">
        Circular suppressed Exception throws StackOverflowError.
      </action>
      <action issue="LOG4J2-1046" dev="ggregory" type="fix" due-to="Kenneth Gendron">
        Circular Exception cause throws StackOverflowError.
      </action>
      <action issue="LOG4J2-982" dev="ggregory" type="fix" due-to="Mikhail Mazurskiy">
        Use System.nanoTime() to measure time intervals.
      </action>
      <action issue="LOG4J2-1045" dev="ggregory" type="fix" due-to="Günter Albrecht">
        Externalize log4j2.xml via URL resource.
      </action>
      <action issue="LOG4J2-1058" dev="ggregory" type="fix" due-to="Daniel Branzea">
        Log4jMarker#contains(String) does not respect org.slf4j.Marker contract.
      </action>
      <action issue="LOG4J2-1060" dev="ggregory" type="fix">
        Log4jMarker#contains(Marker) does not respect org.slf4j.Marker contract.
      </action>
      <action issue="LOG4J2-1061" dev="ggregory" type="fix">
        Log4jMarker#remove(Marker) does not respect org.slf4j.Marker contract.
      </action>
      <action issue="LOG4J2-1062" dev="ggregory" type="fix">
        Log4jMarker#add(Marker) does not respect org.slf4j.Marker contract.
      </action>
      <action issue="LOG4J2-1064" dev="ggregory" type="fix">
        org.apache.logging.slf4j.Log4jMarker does not implement org.slf4j.Marker.equals(Object) org.slf4j.Marker.hashCode().
      </action>
      <action issue="LOG4J2-889" dev="rpopma" type="fix" due-to="Maciej Karaś, Kenneth Leider">
        Header in layout should not be written on application startup if appending to an existing file. Fixes LOG4J2-1030.
      </action>
      <action issue="LOG4J2-918" dev="rpopma" type="fix">
        Clarify documentation for combining async with sync loggers.
      </action>
      <action issue="LOG4J2-1078" dev="ggregory" type="fix" due-to="Mikael Ståldal">
        GelfLayout throws exception if some log event fields are null.
      </action>
      <action issue="LOG4J2-1044" dev="rgoers" type="update">
        Support batchSize in FlumeAvroManager.
      </action>
      <action issue="LOG4J2-1065" dev="ggregory" type="update">
        Define org.apache.logging.log4j.Marker.equals(Object) and org.apache.logging.log4j.Marker.hashCode().
      </action>
      <action issue="LOG4J2-1063" dev="ggregory" type="update">
        Avoid creating temporary array object in org.apache.logging.slf4j.Log4jMarker.iterator().
      </action>
      <action issue="LOG4J2-890" dev="ggregory" type="update" due-to="Hassan Kalaldeh, Robert Andersson, Remko Popma">
        log4j-web-2.1 should workaround a bug in JBOSS EAP 6.2.
      </action>
      <action issue="LOG4J2-403" dev="ggregory" type="update" due-to="Poorna Subhash P, Jeremy Lautman">
        MongoDB appender, username and password should be optional.
      </action>
      <action issue="LOG4J2-1035" dev="ggregory" type="update">
        Log4j2 tries to SystemClassLoader when running on Google AppEngine.
      </action>
      <action issue="LOG4J2-1022" dev="rgoers" type="update">
        Allow a list of keys to be specified in the MDC pattern converter.
      </action>
      <action issue="LOG4J2-959" dev="ggregory" type="update">
        Fix FindBugs DM_DEFAULT_ENCODING bug in SimpleLogger.logMessage() and simplify code.
      </action>
      <action issue="LOG4J2-1036" dev="ggregory" type="update">
        Update Apache Flume from 1.5.2 to 1.6.0.
      </action>
      <action issue="LOG4J2-1041" dev="ggregory" type="update">
        Update MongoDB driver from 2.11.2 to 2.13.2.
      </action>
      <action issue="LOG4J2-1018" dev="ggregory" type="update">
        Update database tests from H2 1.3.175 to 1.3.176.
      </action>
      <action issue="LOG4J2-1070" dev="ggregory" type="update">
        Update Java Mail from 1.5.2 to 1.5.4.
      </action>
      <action issue="LOG4J2-1079" dev="ggregory" type="update">
        Update Jackson from 2.5.3 to 2.5.4.
      </action>
      <action issue="LOG4J2-1879" dev="ggregory" type="update">
        Update Jackson from 2.5.4 to 2.6.0.
      </action>
      <action issue="LOG4J2-1092" dev="ggregory" type="update">
        Update Jackson from 2.6.0 to 2.6.1.
      </action>
      <action issue="LOG4J2-1104" dev="ggregory" type="update">
        Update Apache Commons Compress from 1.9 to 1.10.
      </action>
    </release>
    <release version="2.3" date="2015-05-09" description="GA Release 2.3">
      <action issue="LOG4J2-1009" dev="ggregory" type="fix" due-to="Mikael Ståldal">
        Incorrectly defined compressionType parameter to GelfLayout.
      </action>
      <action issue="LOG4J2-1008" dev="ggregory" type="fix" due-to="Ralph Goers, Gary Gregory">
        org.apache.logging.log4j.core.config.plugins.util.ResolverUtil.extractPath(URL) incorrectly converts '+' characters to spaces.
      </action>
      <action issue="LOG4J2-1007" dev="ggregory" type="fix" due-to="Ralph Goers, Gary Gregory">
        org.apache.logging.log4j.core.util#fileFromUri(URI uri) incorrectly converts '+' characters to spaces.
      </action>
      <action issue="LOG4J2-1003" dev="ggregory" type="fix" due-to="Dan Armbrust">
        JUL Logger.throwing is mis-mapped to ERROR when it should be TRACE.
      </action>
      <action issue="LOG4J2-965" dev="ggregory" type="fix" due-to="Khotyn Huang">
        System.out no longer works after the Console appender and JANSI are initialized.
      </action>
      <action issue="LOG4J2-998" dev="ggregory" type="update" due-to="Mariano Gonzalez">
        Make org.apache.logging.log4j.core.Logger#updateConfiguration protected.
      </action>
      <action issue="LOG4J2-995" dev="rgoers" type="update">
        Move UTF-8 constant from Charsets to Constants class. Remove Charsets class.
      </action>
      <action issue="LOG4J2-993" dev="rgoers" type="fix">
        Deadlock would occur if appender thread creates a new Logger during reconfiguration.
      </action>
      <action issue="LOG4J2-991" dev="rpopma" type="fix" due-to="Ryan Rupp">
        Async root logger config should default includeLocation to false.
      </action>
      <action issue="LOG4J2-985" dev="rpopma" type="fix" due-to="Sean Dawson">
        AbstractFilter should not implement equals() and hashCode().
      </action>
      <action issue="LOG4J2-984" dev="ggregory" type="add" due-to="Jonas Höpfner">
        PatternLayout %highlight to support noConsoleNoAnsi like %style.
      </action>
      <action issue="LOG4J2-926" dev="ggregory" type="add" due-to="David Ohana">
        Truncate from the end of text format modifier.
      </action>
      <action issue="LOG4J2-980" dev="ggregory" type="fix" due-to="Mikhail Mazurskiy">
        Numerical overflow in BurstFilter not handled correctly.
      </action>
      <action issue="LOG4J2-981" dev="ggregory" type="fix" due-to="Mikhail Mazurskiy">
        Incorrect unlock in ProviderUtil.
      </action>
      <action issue="LOG4J2-966" dev="ggregory" type="fix">
        KeyStoreConfiguration.createKeyStoreConfiguration() ignores keyManagerFactoryAlgorithm.
      </action>
      <action issue="LOG4J2-976" dev="ggregory" type="fix" due-to="Matt Quinn">
        Using monitorInterval with YAML config file format causes JSONParseException.
      </action>
      <action issue="LOG4J2-964" dev="ggregory" type="fix" due-to="Jonne Jyrylä">
        StringFormattedMessage serialization is incorrect.
      </action>
      <action issue="LOG4J2-947" dev="ggregory" type="fix" due-to="Stefan Wehner">
        A new StatusLoggerAdmin listener is added to StatusLogger every time the log is reconfigured.
      </action>
      <action issue="LOG4J2-968" dev="ggregory" type="fix" due-to="Paul D Johe">
        SyslogLayout contains extra space.
      </action>
      <action issue="LOG4J2-967" dev="ggregory" type="fix" due-to="Stefan Wehner">
        log4j2.component.properties not read for all properties.
      </action>
      <action issue="LOG4J2-971" dev="ggregory" type="fix" due-to="Paul D Johe">
        Another bad priority in Syslog messages.
      </action>
      <action issue="LOG4J2-972" dev="ggregory" type="fix">
        org.apache.logging.log4j.core.net.ssl.TlsSyslogInputStreamReader does not need to create temp Integer objects.
      </action>
      <action issue="LOG4J2-974" dev="ggregory" type="fix" due-to="Daniel Galán y Martins">
        Typo in EventLogger documentation.
      </action>
      <action issue="LOG4J2-988" dev="ggregory" type="update">
        Update LMAX Disruptor from 3.3.0 to 3.3.2.
      </action>
      <action issue="LOG4J2-987" dev="ggregory" type="update">
        Migrate tests from Logback 1.1.2 to 1.1.3.
      </action>
      <action issue="LOG4J2-988" dev="ggregory" type="update">
        Update tests to use ActiveMQ from 5.10 to 5.11.1.
      </action>
      <action issue="LOG4J2-1004" dev="ggregory" type="update">
        Update Jackson from 2.5.1 to 2.5.3.
      </action>
      <action issue="LOG4J2-1005" dev="ggregory" type="update">
        Update Slf4j from 1.7.7 to 1.7.12.
      </action>
    </release>
    <release version="2.2" date="2015-02-22" description="GA Release 2.2">
      <action issue="LOG4J2-938" dev="rpopma" type="fix" due-to="Mauro Molinari">
        (JMX) To avoid memory leaks when web applications are restarted, JMX notifications are sent from
        the caller thread in web applications. For non-web applications notifications are sent from a background thread
        as before.
      </action>
      <action issue="LOG4J2-957" dev="ggregory" type="fix" due-to="fatih guleryuz">
        Missing toUpperCase(Locale.ENGLISH).
      </action>
      <action issue="LOG4J2-956" dev="ggregory" type="fix" due-to="David Kellerman">
        Manual refers to Route "AppenderRef" attribute, should be "ref".
      </action>
      <action issue="LOG4J2-955" dev="rpopma" type="update">
        Documentation: clarify system properties to control status logger, improve troubleshooting FAQ entry.
      </action>
      <action issue="LOG4J2-950" dev="ggregory" type="update" due-to="Joel Edwards">
        Incorrect attribute name in PropertiesRewritePolicy example.
      </action>
      <action issue="LOG4J2-944" dev="ggregory" type="fix" due-to="Vinayaka Ramachandra">
        Log4j Flume appender is not adding millisecond to the event headers when the event is logged at 000 milliseconds.
      </action>
      <action issue="LOG4J2-941" dev="ggregory" type="add" due-to="Konstantinos Liakos">
        Allow JSON layout to create one compact log record per line.
      </action>
      <action issue="LOG4J2-933" dev="ggregory" type="add" due-to="ppiman at gmail.com">
        HTML layout should not use attribute minimalization for hr noshade.
      </action>
      <action issue="LOG4J2-895" dev="ggregory" type="add">
        Specify the SyslogAppender connect timeout value as part of the configuration.
        The SyslogAppender takes a new parameter connectTimeoutMillis.
      </action>
      <action issue="LOG4J2-899" dev="ggregory" type="add">
        Specify the SocketAppender connect timeout value as part of the configuration.
        The SyslogAppender takes a new parameter connectTimeoutMillis.
      </action>
      <action issue="LOG4J2-924" dev="ggregory" type="fix" due-to="Ryan Rupp">
        Log4j 1.2 Bridge doesn't map level ALL correctly in Category.getEffectiveLevel().
      </action>
      <action issue="LOG4J2-931" dev="ggregory" type="fix" due-to="Robert Gacki">
        ConsoleAppender is missing @PluginFactory annotation at createAppender method.
      </action>
      <action issue="LOG4J2-919" dev="ggregory" type="fix" due-to="David Johle">
        Logging system fails to initialize if XInclude API is not available.
      </action>
      <action issue="LOG4J2-914" dev="ggregory" type="fix" due-to="Kaj Bjurman">
        ThrowableProxy.getExtendedStackTraceAsString causes NullPointerException.
      </action>
      <action issue="LOG4J2-912" dev="ggregory" type="fix">
        XML configuration does not report full error message for XInclude parser configuration problems.
      </action>
      <action issue="LOG4J2-903" dev="ggregory" type="fix" due-to="Mauro Molinari">
        ClassLoaderContextSelector uses ClassLoader.toString() as a key
      </action>
      <action issue="LOG4J2-834" dev="ggregory" type="fix" due-to="Nikita Koval, Leonard Broman, Thiago Kronig">
        ThrowableProxy throws NoClassDefFoundError.
      </action>
      <action issue="LOG4J2-893" dev="ggregory" type="fix">
        NullPointerException on filter when mapping JUL to Log4j2.
      </action>
      <action issue="LOG4J2-892" dev="ggregory" type="fix">
        JUL adapter does not map Log4j'2 FATAL level to a JUL level.
      </action>
      <action issue="LOG4J2-881" dev="ggregory" type="fix" due-to="Mariano Gonzalez">
        AbstractLifecycle should not implement equals() and hashCode().
      </action>
      <action issue="LOG4J2-897" dev="ggregory" type="fix">
        Javadoc for org.apache.log4j.BasicConfigurator.configure() is incorrect.
      </action>
      <action issue="LOG4J2-891" dev="ggregory" type="fix">
        AbstractLifecycle should not implement equals() and hashCode().
      </action>
      <action issue="LOG4J2-946" dev="ggregory" type="fix" due-to="artemonster">
        [docs] Using Log4j 2 in Web Applications: Update example (Log4jWebLifeCycle is not visible).
      </action>
      <action issue="LOG4J2-901" dev="ggregory" type="update" due-to="Tihomir Meščić, Siegfried Greisinger">
        Update docs for SyslogAppender: "No structured id name was supplied"
      </action>
      <action issue="LOG4J2-958" dev="ggregory" type="update">
        Update from Jackson 2.5.0 to 2.5.1.
      </action>
      <action issue="LOG4J2-925" dev="ggregory" type="update">
        Update from Jackson 2.4.4 to 2.5.0.
      </action>
      <action issue="LOG4J2-910" dev="ggregory" type="update">
        Update Jackson from 2.4.3 to 2.4.4.
      </action>
      <action issue="LOG4J2-881" dev="ggregory" type="update">
        Update Jackson from 2.4.2 to 2.4.3.
      </action>
      <action issue="LOG4J2-882" dev="ggregory" type="update">
        Update maven-core from 3.1.0 to 3.2.3.
      </action>
      <action issue="LOG4J2-883" dev="ggregory" type="update">
        Update tests from org.apache.felix.framework 4.2.1 to 4.4.1.
      </action>
      <action issue="LOG4J2-884" dev="ggregory" type="update">
        Update org.eclipse.osgi from 3.6.0 to 3.7.1.
      </action>
      <action issue="LOG4J2-900" dev="ggregory" type="update">
        Update Apache Flume from 1.5.0.1 to 1.5.2.
      </action>
    </release>
    <release version="2.1" date="2014-10-19" description="GA Release 2.1">
      <action issue="LOG4J2-676" dev="rgoers" type="fix" due-to="Stefan Bodewig">
        Some typo fixes and enhancements for the site.
      </action>
      <action issue="LOG4J2-868" dev="mattsicker" type="add">
        Add ShutdownCallbackRegistry interface for customizable shutdown callback handling. This is particularly
        useful for application servers that wish to integrate with Log4j 2.
      </action>
      <action issue="LOG4J2-866" dev="rpopma" type="fix" due-to="Gerard Weatherby">
        Documentation: fixed missing closing parenthesis in code example.
      </action>
      <action issue="LOG4J2-862" dev="mattsicker" type="fix" due-to="Michael Sutherland">
        Fixed classloader issue that prevented Log4j from finding the implementation when used in a custom Ant task.
      </action>
      <action issue="LOG4J2-589" dev="rpopma" type="add">
        Supported filtering on custom log levels in configuration.
      </action>
      <action issue="LOG4J2-861" dev="rpopma" type="fix">
        Documentation: fix broken links on left navigation Extending Log4j Configuration sub-menu.
      </action>
      <action issue="LOG4J2-856" dev="rpopma" type="add">
        Documentation: add sections on the JUL Adapter, IO Streams and NoSQL Appenders to the Maven and Ivy page.
      </action>
      <action issue="LOG4J2-797" dev="rpopma" type="fix" due-to="Andreas Rytina">
        Documentation: clarified why log4j-core is a compile time dependency in Maven and Ivy page.
      </action>
      <action issue="LOG4J2-855" dev="rpopma" type="fix">
        Documentation: fix broken links on Appenders manual page.
      </action>
      <action issue="LOG4J2-807" dev="rpopma" type="fix">
        Prevent NPE when configuration with AsyncLogger/AsyncRoot is reloaded.
      </action>
      <action issue="LOG4J2-848" dev="ggregory" type="add">
        Add a Java lookup to provide nicely formatted runtime version information.
      </action>
      <action issue="LOG4J2-809" dev="mattsicker" type="add">
        Move reflection utility class to API's private utility classes.
      </action>
      <action issue="LOG4J2-845" dev="mattsicker" type="update">
        Add 2.1.0 to compatible versions in Log4j API ProviderUtil and update Log4jAPIVersion to 2.1.0 in
        core META-INF/log4j-provider.properties.
      </action>
      <action issue="LOG4J2-833" dev="rpopma" type="add">
        Documentation: added Runtime Dependencies link to left nav-bar on site.
      </action>
      <action issue="LOG4J2-816" dev="rpopma" type="add">
        Documentation: added section on XInclude to user manual Configuration page.
      </action>
      <action issue="LOG4J2-678" dev="rpopma" type="fix" due-to="Matt Sicker">
        Documentation: fixed minor issues with Log4j2 web site/documentation.
      </action>
      <action issue="LOG4J2-844" dev="rpopma" type="update">
        Update JMH to 1.1 from 0.7.2.
      </action>
      <action issue="LOG4J2-843" dev="rpopma" type="fix">
        Migrate JpaHyperSqlAppenderTest JUnit performance test to log4j-perf.
      </action>
      <action issue="LOG4J2-842" dev="rpopma" type="fix">
        Migrate JpaH2AppenderTest JUnit performance test to log4j-perf.
      </action>
      <action issue="LOG4J2-841" dev="rpopma" type="fix">
        Migrate JdbcHyperSqlAppenderTest JUnit performance test to log4j-perf.
      </action>
      <action issue="LOG4J2-840" dev="rpopma" type="fix">
        Migrate JdbcH2AppenderTest JUnit performance test to log4j-perf.
      </action>
      <action issue="LOG4J2-830" dev="rpopma" type="fix">
        Respect external interrupt signal to allow application shutdown after joining AsyncAppender thread.
      </action>
      <action issue="LOG4J2-813" dev="ggregory" type="fix" due-to="David Erichsen, Brandon Barry">
        MarkerManager Log4jMarker.hasParents() returns opposite of correct result.
      </action>
      <action issue="LOG4J2-785" dev="rpopma" type="fix">
        Documentation: fixed capitalization inconsistency in user manual example config.
      </action>
      <action issue="LOG4J2-829" dev="rpopma" type="fix">
        Fixed issue in RollingFile filePattern: backslashes are path separators, not escape characters.
      </action>
      <action issue="LOG4J2-547" dev="mattsicker" type="add">
        Add the Log4j IOStreams component.
      </action>
      <action issue="LOG4J2-431" dev="rpopma" type="add" due-to="Claude Mamo">
        Added Memory-Mapped File Appender.
      </action>
      <action issue="LOG4J2-832" dev="ggregory" type="fix" due-to="Seth Leger">
        ThrowableProxy fails if a class in logged stack trace throws java.lang.Error from initializer
      </action>
      <action issue="LOG4J2-831" dev="rpopma" type="update">
        Documentation: updated FAQ "which jars" diagrams for JUL bridge and 2.1 version.
      </action>
      <action issue="LOG4J2-827" dev="mattsicker" type="add">
        Support use of TypeConverter classes through the standard Plugin system.
      </action>
      <action issue="LOG4J2-745" dev="mattsicker" type="fix" due-to="Scott Harrington">
        Avoid ConverterKey plugin clashes by using a more predictable plugin loading infrastructure.
        Plugins have been segmented into three parts: class path, user-specified packages, and OSGi bundles.
      </action>
      <action issue="LOG4J2-798" dev="mattsicker" type="fix" due-to="Scott Harrington">
        Fixed plugin scanning redundancy causing massive slowdowns in certain environments.
      </action>
      <action issue="LOG4J2-753" dev="rpopma" type="fix">
        Reduced CachedClock thread contention.
      </action>
      <action issue="LOG4J2-819" dev="mattsicker" type="fix" due-to="Gary Gregory">
        Fixed memory leak in Tomcat 6 caused by clock background threads unintentionally
        started by Tomcat after web application stop.
      </action>
      <action issue="LOG4J2-825" dev="mattsicker" type="add">
        Add simple validation constraint annotations for the Plugin system.
      </action>
      <action issue="LOG4J2-428" dev="ggregory" type="add" due-to="Mark Paluch, Mikael Ståldal">
        Implement a GELF layout.
      </action>
      <action issue="LOG4J2-391" dev="rgoers" type="fix" due-to="Kamal Bahadur">
        FlumePersistentManager now handles LockConflictExceptions in Berkeley Db when sending a batch.
      </action>
      <action issue="LOG4J2-782" dev="mattsicker" type="fix">
        Remove invalid Oracle Maven repository.
      </action>
      <action issue="LOG4J2-780" dev="mattsicker" type="update">
        Update Spring Framework to 3.2.11.RELEASE from 3.2.8.RELEASE.
      </action>
      <action issue="LOG4J2-815" dev="mattsicker" type="update">
        Unify the two JMS appenders into a single appender. Configurations written for 2.0 will still work in 2.1+.
      </action>
      <action issue="LOG4J2-608" dev="mattsicker" type="add">
        Add java.util.logging implementation based on log4j-api. See log4j-jul documentation for more details.
      </action>
      <action issue="LOG4J2-796" dev="rpopma" type="fix">
        Fixed issue where log4j-to-slf4j did not work correctly with SLF4J Simple Logger.
      </action>
      <action issue="LOG4J2-811" dev="ggregory" type="fix" due-to="Yogesh Rao">
        SimpleLogger throws ArrayIndexOutOfBoundsException for an empty array.
      </action>
      <action issue="LOG4J2-663" dev="mattsicker" type="fix" due-to="Florian Brunner">
        Fix OSGi Import-Package problem with the JMS API.
      </action>
      <action issue="LOG4J2-793" dev="mattsicker" type="add">
        Add support for custom SLF4J Markers in log4j-slf4j-impl module.
      </action>
      <action issue="LOG4J2-783" dev="rpopma" type="fix" due-to="Minglei Lee">
        PatternLayout should use platform character encoding by default, not UTF-8.
      </action>
      <action issue="LOG4J2-771" dev="ggregory" type="add">
        Add lookup for application main arguments.
      </action>
      <action issue="LOG4J2-787" dev="ggregory" type="add">
        Add lookup for JVM arguments.
      </action>
      <action issue="LOG4J2-790" dev="ggregory" type="update">
        Update Jackson to 2.4.2 from 2.4.1 (for XML and JSON processing).
      </action>
      <action issue="LOG4J2-766" dev="ggregory" type="update" due-to="Bruno P. Kinoshita">
        Incomplete documentation for JSONLayout.
      </action>
      <action issue="LOG4J2-800" dev="ggregory" type="update">
        All life cycle implementations should be serializable.
        This is still work in progress.
      </action>
      <action issue="LOG4J2-801" dev="ggregory" type="update">
        org.apache.logging.log4j.core.Logger should be serializable.
        This is still work in progress.
      </action>
      <action issue="LOG4J2-810" dev="ggregory" type="update">
        Update javax.mail to 1.5.2 from 1.5.0.
      </action>
      <action issue="LOG4J2-822" dev="ggregory" type="update">
        Update org.eclipse.persistence.jpa to 2.5.2 from 2.5.1.
      </action>
      <action issue="LOG4J2-867" dev="ggregory" type="update">
        FlumeAppender: maxDelay not in seconds, but milliseconds.
        Add time scale to some settings, for example maxDelayMillis instead of maxDelay.
        The old names are aliased for compatibility.
      </action>
    </release>
    <release version="2.0.2" date="2014-08-16" description="Bug fixes and enhancements">
      <action issue="LOG4J2-775" dev="ggregory" type="update">
        Update Apache Flume to 1.5.0.1 from 1.5.0.
      </action>
      <action issue="LOG4J2-773" dev="rpopma" type="fix">
        Site: log4j-core component pages were still using the old logo.
      </action>
      <action issue="LOG4J2-760" dev="rpopma" type="fix">
        Documentation improvement: link to dependency tree from log4j-core component page,
        link to log4j-core component page from FAQ page.
      </action>
      <action issue="LOG4J2-679" dev="rpopma" type="fix">
        Resolved race condition that caused log file rotation to fail with error: "Unable to create directory ..."
      </action>
      <action issue="LOG4J2-726" dev="rpopma" type="fix">
        Prevent application from hanging when PatternLayout configuration has opening '{' but no closing '}'.
      </action>
      <action issue="LOG4J2-769" dev="rpopma" type="fix" due-to="Scott Harrington">
        Startup takes a long time if you have empty packages attribute.
      </action>
      <action issue="LOG4J2-763" dev="rpopma" type="fix" due-to="Stephen Connolly">
        Improved asynchronous loggers and appenders to ensure the formatted message does not change even if
        parameters are modified by the application. (ParameterizedMessage was already safe.)
        Improved documentation.
      </action>
      <action issue="LOG4J2-729" dev="rpopma" type="fix">
        Emit warning message to console if no configuration file found.
      </action>
      <action issue="LOG4J2-765" dev="rpopma" type="fix">
        Improve warning message when missing log4j-core in the classpath.
      </action>
      <action issue="LOG4J2-722" dev="rpopma" type="fix">
        Clarified in documentation that Commons Logging jar is required when using log4j-jcl.
      </action>
      <action issue="LOG4J2-723" dev="rpopma" type="fix">
        Clarified in documentation that SLF4J API jar is required when using log4j-slf4j-impl.
      </action>
      <action issue="LOG4J2-730" dev="rpopma" type="update">
        Allow Log4jContextFactory subclasses to specify a custom ContextSelector.
      </action>
      <action issue="LOG4J2-759" dev="rpopma" type="fix">
        Fixed various minor site/documentation issues, mostly versioning related.
      </action>
      <action issue="LOG4J2-756" dev="rpopma" type="fix" due-to="Scott Harrington">
        Prevent JUnit test from creating unnecessary Log4j2Plugins.dat during build.
      </action>
    </release>
    <release version="2.0.1" date="2014-07-29" description="Bug fixes">
      <action issue="LOG4J2-744" dev="rpopma" type="fix" due-to="Scott Harrington">
        Avoid unnecessary Clock calls when TimestampMessage is logged.
      </action>
      <action issue="LOG4J2-704" dev="rpopma" type="fix">
        Improved error message if configuration file not found.
      </action>
      <action issue="LOG4J2-750" dev="ggregory" type="fix" due-to="Mike Calmus">
        Webapp configuration page has incorrect class name.
      </action>
      <action issue="LOG4J2-749" dev="rpopma" type="fix" due-to="Scott Harrington">
        Retain the default date pattern after fixing the ISO8601 pattern.
      </action>
      <action issue="LOG4J2-670" dev="rpopma" type="fix">
        DatePatternConverter ISO8601_PATTERN now conforms to ISO8601.
      </action>
      <action issue="LOG4J2-741" dev="rpopma" type="fix">
        Reinstate the package configuration attribute for discovering custom plugins.
      </action>
      <action issue="LOG4J2-742" dev="ggregory" type="fix" due-to="Pascal Chollet">
        XInclude not working with relative path.
      </action>
      <action issue="LOG4J2-740" dev="mattsicker" type="fix" due-to="Kosta Krauth">
        Fixed typo in webapp manual regarding sample web.xml file.
      </action>
      <action issue="LOG4J2-738" dev="ggregory" type="fix" due-to="Timothy Stack">
        RollingFileManager deadlock if async action thread fails to start.
      </action>
      <action issue="LOG4J2-736" dev="mattsicker" type="fix">
        Fixed log4j-bom so that it won't specify a default scope on any third party dependencies.
      </action>
      <action issue="LOG4J2-735" dev="mattsicker" type="fix">
        Fixed log4j-bom so that it won't interfere with spring-bom and others.
      </action>
      <action issue="LOG4J2-731" dev="mattsicker" type="fix">
        Updated documentation regarding extensions to LoggerContextFactory and Log4j 2 providers.
      </action>
      <action issue="LOG4J2-373" dev="mattsicker" type="fix">
        Fixed ClassLoader issues in loading Log4j providers in an OSGi environment.
      </action>
      <action issue="LOG4J2-725" dev="mattsicker" type="add">
        Added WebLoggerContextUtils class to log4j-web for helper methods useful for asynchronous servlets.
      </action>
      <action issue="LOG4J2-710" dev="rpopma" type="add">
        Added documentation for Custom Levels and Custom Loggers.
      </action>
      <action issue="LOG4J2-719" dev="rpopma" type="fix">
        Correctly handle NetworkOnMainThreadException thrown on Android during Log4j2 initialization.
      </action>
      <action issue="LOG4J2-716" dev="rpopma" type="fix">
        Automatically disable log4j JMX when detecting we are running on Android.
      </action>
      <action issue="LOG4J2-657" dev="rpopma" type="fix" due-to="Stefan Wehner">
        Fixed AbstractDatabaseManager to close connection on writeInternal error.
      </action>
      <action issue="LOG4J2-713" dev="ggregory" type="fix" due-to="Nelson Melina">
        Android: java.lang.VerifyError: org/apache/logging/log4j/core/util/Closer
      </action>
      <action issue="LOG4J2-703" dev="ggregory" type="fix" due-to="Nelson Melina">
        Android: Could not find class 'javax.naming.InitialContext', referenced from method org.apache.logging.log4j.core.lookup.JndiLookup.lookup.
      </action>
      <action issue="LOG4J2-732" dev="ggregory" type="updated">
        Update to LMAX Disruptor 3.3.0 from 3.2.1.
      </action>
      <action issue="LOG4J2-733" dev="ggregory" type="updated">
        Update to latest Jackson jars from the 2.4.1.X line.
      </action>
    </release>
    <release version="2.0" date="2014-07-12" description="GA Release">
      <action issue="LOG4J2-705" dev="rpopma" type="fix">
        Fixed issue where Async Logger does not log thread context stack data.
        API change: added method getImmutableStackOrNull() to ThreadContext.ContextStack interface.
      </action>
      <action issue="LOG4J2-631" dev="rpopma" type="fix">
        Update docs to clarify how to use formatter logger and standard logger together.
      </action>
      <action issue="LOG4J2-519" dev="rpopma" type="add">
        Added support for generating custom logger wrappers that replace the existing log levels
        and extended logger wrappers that add custom log levels to the existing ones.
      </action>
      <action issue="LOG4J2-441" dev="rgoers" type="fix">
        LoggerConfigs with no Level now inherit the Level from their parent.
      </action>
      <action issue="LOG4J2-696" dev="ggregory" type="add">
        RegexFilter does not match multiline log messages.
      </action>
      <action issue="LOG4J2-699" dev="rpopma" type="fix">
        PatternLayout manual page missing documentation on header/footer.
      </action>
      <action issue="LOG4J2-625" dev="rpopma" type="fix">
        Fixed Serialization error with SocketAppender and Async Loggers.
        (Fixed in RC2, but wasn't included in release notes.)
      </action>
      <action issue="LOG4J2-538" dev="rpopma" type="fix">
        JMX GUI: fixed occasional ArrayIndexOutOfBoundsException after pressing "reconfigure with XML below".
        (Fixed in RC2, but wasn't included in release notes.)
      </action>
      <action issue="LOG4J2-666" dev="rpopma" type="fix">
        AsyncLoggerContextSelector should ensure that different AsyncLoggerContext objects created by web app classloaders have unique names.
      </action>
      <action issue="LOG4J2-683" dev="mattsicker" type="fix" due-to="Jurriaan Mous">
        Fix annotation processor warnings on JDK 1.7+.
      </action>
      <action issue="LOG4J2-694" dev="mattsicker" type="fix">
        Fix strange compilation error that popped up in a test class.
      </action>
      <action issue="LOG4J2-692" dev="rgoers" type="fix">
        Update documentation to specify only Maven 3 is supported.
      </action>
      <action issue="LOG4J2-690" dev="rgoers" type="fix" due-to="Philip Helger">
        Log4j Web test dependencies should be in scope "test" in the pom.
      </action>
      <action issue="LOG4J2-682" dev="ggregory" type="fix" due-to="Scott Harrington">
        Special characters (tab and so on) in PatternLayout do not work.
      </action>
      <action issue="LOG4J2-685" dev="ggregory" type="update">
        Make org.apache.logging.log4j.core.layout.AbstractLayout immutable.
      </action>
      <action issue="LOG4J2-686" dev="ggregory" type="fix">
        Core's OptionConverter support for \b is broken (affects PatternLayout).
      </action>
      <action issue="LOG4J2-687" dev="ggregory" type="fix">
        Rename org.apache.logging.log4j.core.util.Closer.closeSilent() to closeSilently().
      </action>
      <action issue="LOG4J2-688" dev="ggregory" type="fix">
        Make org.apache.logging.log4j.core.layout.PatternLayout immutable.
      </action>
      <action issue="LOG4J2-689" dev="ggregory" type="update">
        Update Jackson to 2.4.1.
      </action>
      <action issue="LOG4J2-707" dev="ggregory" type="fix">
        Some exceptions are not logged when configuration problems are detected.
      </action>
      <action issue="LOG4J2-709" dev="ggregory" type="update">
        Update Apache Commons Logging to 1.2 from 1.1.3.
      </action>
    </release>
    <release version="2.0-rc2" date="2014-06-21" description="Bug fixes and enhancements">
      <action issue="LOG4J2-675" dev="rpopma" type="add">
        RollingFile and RollingRandomAccessFile now write the layout footer before rollover.
      </action>
      <action issue="LOG4J2-581" dev="rpopma" type="fix" due-to="Alexander Khokhlov">
        RollingRandomAccessFile now writes the layout header after rollover.
      </action>
      <action issue="LOG4J2-622" dev="rpopma" type="fix" due-to="Farooq Khan">
        RollingFileManager now correctly honours the bufferedIO configuration after rollover.
      </action>
      <action issue="LOG4J2-674" dev="rpopma" type="add">
        Made RollingFileAppender buffer size configurable.
      </action>
      <action issue="LOG4J2-141" dev="rpopma" type="fix" due-to="Joern Huxhorn">
        Improved documentation regarding log4j status logger.
      </action>
      <action issue="LOG4J2-539" dev="rpopma" type="fix" due-to="Colin Froggatt">
        Fixed issue with "Reconfigure using XML below" function in JMX Client GUI.
        ConfigurationSource is now a top-level class and can be obtained with Configuration.getConfigurationSource().
        LoggerContext.getConfiguration().getConfigurationSource()
        provides a reliable public method for obtaining a logger context's configuration location and content.
      </action>
      <action issue="LOG4J2-619" dev="rgoers" type="fix" due-to="Scott Harrington">
        Invalid XML configuration files do not prevent the config file from being checked again.
      </action>
      <action issue="LOG4J2-637" dev="rpopma" type="fix" due-to="Mansoor Sajjad, Jon Wilmoth">
        JMX: Updating a Logger's level via jConsole now correctly takes effect.
      </action>
      <action issue="LOG4J2-668" dev="rpopma" type="fix">
        Correctly process log events when combining AsyncLoggers with AsyncAppender.
      </action>
      <action issue="LOG4J2-669" dev="rpopma" type="fix">
        Prevent NPE when combining AsyncLoggers with AsyncLoggerConfigs.
      </action>
      <action issue="LOG4J2-42" dev="rgoers" type="add">
        Create an appender to route log events to the ServletContext log.
      </action>
      <action issue="LOG4J2-419" dev="rgoers" type="update" due-to="Woonsan Ko">
        Support default value for missing key in look ups with fallback to looking in the properties map.
      </action>
      <action issue="LOG4J2-563" dev="rgoers" type="fix" due-to="Michael Friedmann">
        FlumeAvroManager now always uses a client type of default_failover.
      </action>
      <action issue="LOG4J2-554" dev="rgoers" type="update">
        Allow configuration files to be located as Servlet Context resources.
      </action>
      <action issue="LOG4J2-535" dev="rgoers" type="fix">
        Reset rollover time when size rollover is triggered.
      </action>
      <action issue="LOG4J2-664" dev="mattsicker" type="fix">
        Moved plugin cache file to META-INF for OSGi compatibility.
      </action>
      <action issue="LOG4J2-640" dev="mattsicker" type="fix">
        Fix NPE that can be caused by a null ThreadContextClassLoader.
      </action>
      <action issue="LOG4J2-655" dev="mattsicker" type="add">
        Add Vagrantfile for testing in GNU+Linux.
      </action>
      <action issue="LOG4J2-651" dev="ggregory" type="fix">
        Log4j 2 throws ArrayIndexOutOfBoundsException.
      </action>
      <action issue="LOG4J2-654" dev="rpopma" type="add">
        Add log4j-perf module to provide a home for all log4j performance tests.
        Add support for JMH microbenchmark performance tests.
      </action>
      <action issue="LOG4J2-652" dev="mattsicker" type="add">
        Add support for default plugin values and attributes.
      </action>
      <action issue="LOG4J2-598" dev="mattsicker" type="add">
        Add support for types other than String for plugin factory values/attributes.
      </action>
      <action issue="LOG4J2-250" dev="rpopma" type="update">
        Refactor Log4jLogEvent to lazily create ThrowableProxy.
      </action>
      <action issue="LOG4J2-647" dev="ggregory" type="update">
        Upgrade to Flume 1.5.0.
      </action>
      <action issue="LOG4J2-644" dev="ggregory" type="add">
        Implement a SecureSocketAppender and secure server (SSL/TLS).
      </action>
      <action issue="LOG4J2-646" dev="ggregory" type="update">
        Merge the TLS Syslog appender into the Syslog appender.
      </action>
      <action issue="LOG4J2-620" dev="rgoers" type="fix">
        Perform reconfiguration in a separate thread to prevent deadlocks.
      </action>
      <action issue="LOG4J2-641" dev="mattsicker" type="update">
        Override commons-logging dependency version in tests.
      </action>
      <action issue="LOG4J2-639" dev="rpopma" type="fix" due-to="Mck SembWever">
        Prevent NPE in AsyncLogger and AsyncLoggerConfig if logger is used after log4j has been shut down.
      </action>
      <action issue="LOG4J2-469" dev="rgoers" type="fix">
        FailoverAppender was not resetting its status after the primary appender recovered.
      </action>
      <action issue="LOG4J2-623" dev="rgoers" type="fix">
        Generate MDC properties as a JSON map in JSONLayout.
      </action>
      <action issue="LOG4J2-566" dev="rpopma" type="update" due-to="Luigi Alice">
        Made RollingRandomAccessFileAppender buffer size configurable.
      </action>
      <action issue="LOG4J2-520" dev="rpopma" type="fix" due-to="JavaTech, Andre Bogus">
        Resolved issue where AsyncAppender dropped events if queue still contained
        events when application is stopped.
      </action>
      <action issue="LOG4J2-392" dev="rpopma" type="fix" due-to="Andre Bogus">
        Resolved a problem with the previous solution for LOG4J2-392 that resulted in dropped events
        when using AsyncLoggerConfig with slow appenders when application is stopped.
      </action>
      <action issue="LOG4J2-613" dev="mattsicker" type="fix">
        The OSGi version of log4j-web imports Servlet 2.5 at minimum instead of 3.0.
      </action>
      <action issue="LOG4J2-602" dev="rgoers" type="fix">
        Unit tests are now less verbose during the build process.
      </action>
      <action issue="LOG4J2-570" dev="mattsicker" type="fix">
        Fix shutdown thread memory leak in servlet containers.
      </action>
      <action issue="LOG4J2-628" dev="rpopma" type="update">
        Use Clock to generate all log event timestamps, not just for Async Loggers.
      </action>
      <action issue="LOG4J2-629" dev="rpopma" type="add">
          Document the system properties used in Log4J 2.
      </action>
      <action issue="LOG4J2-542" dev="rgoers" type="fix">
        Make Throwable transient in ThrowableProxy.
      </action>
      <action issue="LOG4J2-617" dev="mattsicker" type="update">
        Update SLF4J to 1.7.7.
      </action>
      <action issue="LOG4J2-616" dev="mattsicker" type="update">
        Update Jackson to 2.3.3.
      </action>
      <action issue="LOG4J2-440" dev="mattsicker" type="fix">
        During shutdown, a NullPointerException could be thrown due to the NullConfiguration class no longer being
        available to the ClassLoader.
      </action>
      <action issue="LOG4J2-346" dev="mattsicker" type="fix">
        Cyclic dependency with log4j-slf4j-impl in OSGi.
      </action>
      <action issue="LOG4J2-345" dev="mattsicker" type="fix">
        The log4j-1.2-api module didn't export any packages to OSGi.
      </action>
      <action issue="LOG4J2-605" dev="mattsicker" type="fix">
        Password data from the NoSQL plugins no longer shows up in cleartext in debug logging.
      </action>
      <action issue="LOG4J2-448" dev="rgoers" type="fix" due-to="X86core">
        A StringIndexOutOfBounds exception could occur during property substitution.
      </action>
      <action issue="LOG4J2-597" dev="rgoers" type="fix">
        StatusLogger was not skipping multiple instances of the FQCN class, causing messages from classes in
        the Verbose list to be printed.
      </action>
      <action issue="LOG4J2-585" dev="rgoers" type="update" due-to="Bruce Brouwer">
        Add support for multiple parents to Markers.
      </action>
      <action issue="LOG4J2-595" dev="mattsicker" type="add">
        Introduce Java annotation processor as the new plugin pre-caching mechanism. This is available in log4j-core.
        All custom plugins created before this should be re-built against the current log4j-core.
      </action>
      <action issue="LOG4J2-564" dev="mattsicker" type="fix">
          Renamed SLF4J logger class to Log4jLogger.
      </action>
      <action issue="LOG4J2-579" dev="ggregory" type="fix">
          Rework Level comparison APIs.
      </action>
      <action issue="LOG4J2-576" dev="ggregory" type="add">
          Add org.apache.logging.log4j.Logger.getLevel().
      </action>
      <action issue="LOG4J2-574" dev="rpopma" type="update">
          Make Blocking the default WaitStrategy for Async Loggers.
      </action>
      <action issue="LOG4J2-555" dev="rpopma" type="update" due-to="Bruce Brouwer">
          Introduce ExtendedLogger interface to facilitate implementing and extending Loggers.
      </action>
      <action issue="LOG4J2-560" dev="rgoers" type="fix">
          SyslogAppenderTest and RFC5424LayoutTest were failing in Java 8.
      </action>
      <action issue="LOG4J2-561" dev="ggregory" type="update" due-to="vibin">
        Allow spaces around commas in Configuration's package attribute.
      </action>
      <action issue="LOG4J2-547" dev="rgoers" type="update" due-to="Bruce Brouwer">
        Have Logger API expose a PrintWriter instead of custom LoggerStream.
      </action>
      <action issue="LOG4J2-439" dev="rgoers" type="add" due-to="Bruce Brouwer">
        Add EncodingPatternConverter to escape newlines and HTML special characters.
      </action>
      <action issue="LOG4J2-496" dev="rgoers" type="update">
        Allow header and footer to be specified as lookup patterns in PatternLayout.
      </action>
      <action issue="LOG4J2-499" dev="rgoers"  type="fix">
        Add equals and hashcode to Log4jLogEvent.
      </action>
      <action issue="LOG4J2-410" dev="rgoers" type="update" due-to="Ivlin Zeng">
        SLf4JLogger is now Serializable.
      </action>
      <action issue="LOG4J2-427" dev="rgoers" type="add" due-to="Alexander Reelsen">
        Add support for configuration via YAML.
      </action>
      <action issue="LOG4J2-378" dev="rgoers" type="fix">
        Add DateLookup and ThreadContextLookup to default lookups.
      </action>
      <action issue="LOG4J2-468" dev="rgoers" type="update">
        Add support to add a LoggerConfig. Document two ways to modify the configuration.
      </action>
      <action issue="LOG4J2-582" dev="ggregory" type="update">
        Rename org.apache.logging.log4j.core.net.SocketServer to TCPSocketServer and refactor with UDP.
      </action>
      <action issue="LOG4J2-592" dev="ggregory" type="update">
        Update Jackson to 2.3.2 from 2.2.2.
      </action>
    </release>
    <release version="2.0-rc1" date="2014-02-16" description="Bug fixes and enhancements">
      <action dev="nickwilliams" type="delete">
        Removed the DataSourceConnectionSource and the &lt;DriverManager&gt; plugin for the JDBC Appender. It is not
        safe to use. Please use the DataSource or factory connection sources backed by a connection pool.
      </action>
      <action dev="nickwilliams" type="update">
        Renamed the org.apache.logging.log4j.core.appender.db.nosql.mongo package to
        org.apache.logging.log4j.core.appender.db.nosql.mongodb.
      </action>
      <action dev="grobmeier" type="update">
        Renamed the org.apache.logging.log4j.core.appender.db.nosql.couch package to
        org.apache.logging.log4j.core.appender.db.nosql.couchdb.
      </action>
      <action issue="LOG4J2-500" dev="rpopma" type="fix">
        (JMX - ObjectNames changed!) Unloading one web application unloads JMX MBeans for all web applications.
      </action>
      <action issue="LOG4J2-507" dev="ggregory" type="update">
        Space Level numbers by 100 instead of 1.
      </action>
      <action issue="LOG4J2-531" dev="rpopma" type="fix" due-to="Geoff Ballinger">
        Fixed bugs where rolled log files were overwritten by RollingFile appender with
        composite time and size based policies.
      </action>
      <action issue="LOG4J2-475" dev="nickwilliams" type="fix" due-to="Matt Sicker">
        Changed the MongoDBConnection to add a MongoDB encoding hook instead of a decoding hook.
      </action>
      <action issue="LOG4J2-489" dev="nickwilliams" type="fix">
        Fixed the JPAAppender's overuse of transactions by connecting (borrowing from pool) on new write internal or on
        flush.
      </action>
      <action issue="LOG4J2-457" dev="nickwilliams" type="fix">
        Fixed failure of JDBC and JPA appender to properly release database connections by connecting (borrowing from
        pool) on new write internal or on flush.
      </action>
      <action issue="LOG4J2-442" dev="nickwilliams" type="fix">
        Fixed problem with JDBC and JPA appender connectivity in WebSphere by connecting (borrowing from pool) on new
        write internal or on flush.
      </action>
      <action issue="LOG4J2-438" dev="nickwilliams" type="fix">
        Ensured the JDBCAppender commits transactions after a single write or a flush of multiple writes.
      </action>
      <action issue="LOG4J2-407" dev="nickwilliams" type="fix">
        Fixed inability to recover from lost database connection in database appenders by connecting (borrowing from
        pool) on new write internal or on flush.
      </action>
      <action issue="LOG4J2-530" dev="rpopma" type="add">
        (JMX) JMX Client GUI should dynamically update when LoggerContext MBeans are registered/unregistered in MBean
        server.
      </action>
      <action issue="LOG4J2-511" dev="rpopma" type="fix" due-to="James Pretorius">
        Stop AsyncLoggerConfig Disruptor thread(s), then AsyncAppender thread(s) first
        before stopping other appenders.
      </action>
      <action issue="LOG4J2-392" dev="rpopma" type="fix" due-to="ilynaf, Andre Bogus">
        Stop AsyncLoggerConfig Disruptor thread(s), then AsyncAppender thread(s) first
        before stopping other appenders.
      </action>
      <action issue="LOG4J2-345" dev="rpopma" type="fix" due-to="Roland Weiglhofer, Matt Sicker">
        (OSGi) logging.log4j-1.2-api doesn't export the log4j API 1.2. Dependent bundles can not be resolved.
      </action>
      <action issue="LOG4J2-523" dev="ggregory" type="fix">
        LocalizedMessage serialization is broken.
      </action>
      <action issue="LOG4J2-385" dev="rpopma" type="fix" due-to="Ace Funk, Porfirio Partida">
        Fixed issues with time-based file rollover (monthly, weekly, hourly and every minute).
      </action>
      <action issue="LOG4J2-452" dev="nickwilliams" type="fix">
        Added a ServletContext attribute that, when set to "true", disables Log4j's auto-initialization in
        Servlet 3.0+ web applications.
      </action>
      <action issue="LOG4J2-512" dev="nickwilliams" type="fix" due-to="Chandra Sekhar Kakarla, Matt Sicker">
        Exposed Log4j web support interface and methods and the LoggerContext through ServletContext attributes
        so that threads not affected by filters (such as asynchronous threads) can utilize the LoggerContext. Also
        updated the Log4j filter so that it supports async.
      </action>
      <action issue="LOG4J2-409" dev="nickwilliams" type="fix" due-to="Frank Steinmann, Thomas Neidhart">
        Created a utility to properly escape backslashes before creating URIs, and changed URI creation to use the
        utility instead of instantiating URI directly.
      </action>
      <action issue="LOG4J2-344" dev="nickwilliams" type="fix" due-to="Keir Lawson, Tomasz Wladzinski">
        Changed the Servlet 3.0 auto-initializer to add the filter by class to get around a WebLogic bug.
      </action>
      <action issue="LOG4J2-359" dev="nickwilliams" type="fix" due-to="Abhinav Shah">
        Changed the Servlet 3.0 auto-initializer so that it does nothing in a Servlet 2.5 or older application. This
        ensures behavioral consistency across containers. This includes additional fixes to abort initialization if a
        duplicate filter already exists and to check the actual Servlet EFFECTIVE version.
      </action>
      <action issue="LOG4J2-517" dev="rpopma" type="fix">
        Switch in log4j-1.2-api Category.getEffectiveLevel has no cases for FATAL, OFF.
      </action>
      <action issue="LOG4J2-41" dev="rgoers" type="update" due-to="Nick Williams">
        Add support for custom logging levels.
      </action>
      <action issue="LOG4J2-406" dev="rpopma" type="fix" due-to="Kerrigan Joseph">
        (JMX) Unregister all log4j JMX MBeans when the LoggerContext is stopped
        to allow web application classes to be GC-ed on undeploy.
      </action>
      <action issue="LOG4J2-405" dev="rgoers" type="fix">
        Configuration was being processed twice at startup.
      </action>
      <action issue="LOG4J2-479" dev="rpopma" type="add" due-to="MK">
        ThreadContext now uses plain ThreadLocal by default, unless system property
        isThreadContextMapInheritable has value "true".
      </action>
      <action issue="LOG4J2-398" dev="rgoers" type="fix">
        Configure properties and setup Interpolator before processing rest of configuration.
      </action>
      <action issue="LOG4J2-481" dev="rgoers" type="add" due-to="Matt Sicker">
        Add Stream interface to Loggers.
      </action>
      <action issue="LOG4J2-490" dev="rgoers" type="update" due-to="Matt Sicker">
        Update EasyMock to version 3.2.
      </action>
      <action issue="LOG4J2-470" dev="rgoers" type="fix">
        hostName property was not being set until after the first configuration element.
      </action>
      <action issue="LOG4J2-464" dev="rgoers" type="fix">
        Support arrays as sub-elements of a JSON configuration.
      </action>
      <action issue="LOG4J2-492" dev="rpopma" type="fix" due-to="Shaddy Baddah, Herlani Junior">
        (JMX) Fixed MalformedObjectNameException if context name contains '=' or newline characters.
      </action>
      <action issue="LOG4J2-377" dev="rpopma" type="fix" due-to="Roland Weiglhofer, Matt Sicker">
        (OSGi) Fix NPE during shutdown.
      </action>
      <action issue="LOG4J2-463" dev="rpopma" type="fix" due-to="Michael Diamond, Matt Sicker">
        Fixed documentation for MyApp example application in the Automatic Configuration section
      </action>
      <action issue="LOG4J2-408" dev="rpopma" type="fix" due-to="Dongqing Hu, Matt Sicker">
        Fixed error in documentation code example in manual/eventlogging.html
      </action>
      <action issue="LOG4J2-451" dev="rpopma" type="fix" due-to="Vinay Pothnis, Matt Sicker">
        Fixed typo in documentation: system property should be log4j2.loggerContextFactory
      </action>
      <action issue="LOG4J2-443" dev="rpopma" type="fix" due-to="Colin Froggatt, Tudor Har">
        (JMX) Fixed issue where log4j2 LoggerContext did not show up in JMX GUI or JConsole.
      </action>
      <action issue="LOG4J2-485" dev="rpopma" type="fix">
        Fixed issue where toString methods that perform logging could deadlock AsyncAppender.
      </action>
      <action issue="LOG4J2-445" dev="rpopma" type="fix" due-to="Anthony Baldocchi">
        ResolverUtil cannot find packages in file URLs which include the '+' character.
      </action>
      <action issue="LOG4J2-430" dev="rgoers" type="fix" due-to="David Gstir">
        Use the formatted Message in RFC5424Layout for non-StructuredDataMessages.
      </action>
      <action issue="LOG4J2-459" dev="rgoers" type="fix">
        Set external context when constructing the LoggerContext.
      </action>
      <action issue="LOG4J2-466" dev="rpopma" type="fix" due-to="Jan Tepke">
        Cannot load log4j2 config file if path contains plus '+' characters.
      </action>
      <action issue="LOG4J2-462" dev="rpopma" type="fix" due-to="Daisuke Baba">
        Fix LogEvent to never return null Level, fixes LevelPatternConverter.format may throw NPE.
      </action>
      <action issue="LOG4J2-465" dev="rpopma" type="fix" due-to="Daisuke Baba">
        Fix LogEvent to never return null Level, fixes ThresholdFilter throws NPE.
      </action>
      <action issue="LOG4J2-471" dev="rpopma" type="fix" due-to="Anthony Baldocchi">
        Fixed issue where toString methods that perform logging could deadlock AsyncLogger.
      </action>
      <action issue="LOG4J2-482" dev="rpopma" type="add" due-to="Hongdi Ren">
        Documentation fix: The attribute of Route to refer to an appender is "ref" not "AppenderRef".
      </action>
      <action issue="LOG4J2-467" dev="rpopma" type="add" due-to="Anthony Baldocchi">
        Added option to toggle Thread name caching in AsyncLogger.
      </action>
      <action issue="LOG4J2-478" dev="ggregory" type="fix" due-to="Michael Friedmann.">
        The message and ndc fields are not JavaScript escaped in JSONLayout.
      </action>
      <action issue="LOG4J2-455" dev="rpopma" type="fix" due-to="Robin Zhang Tao">
        RingBufferLogEvent should return Message timestamp for TimestampMessage messages.
      </action>
      <action issue="LOG4J2-477" dev="rpopma" type="fix" due-to="Tal Liron">
        NPE in ClassLoaderContextSelector.
      </action>
      <action issue="LOG4J2-454" dev="rpopma" type="fix" due-to="Robin Zhang Tao">
        TimeBasedTriggeringPolicy should use event time millis.
      </action>
      <action issue="LOG4J2-472" dev="rpopma" type="fix" due-to="Tal Liron">
        BaseConfiguration class does not properly implement Configuration interface.
      </action>
      <action issue="LOG4J2-447" dev="ggregory" type="fix" due-to="Jeff Hudren, Mark Paluch, Scott Deboy">
        XMLLayout does not include marker name.
      </action>
      <action issue="LOG4J2-453" dev="rgoers" type="update">
        Update Flume Appender to use Flume 1.4.0.
      </action>
      <action issue="LOG4J2-423" dev="rpopma" type="add">
        (JMX) Added MBeans for instrumenting AsyncAppenders and AsyncLogger RingBuffers,
        exposing queue size, remaining capacity and other attributes.
      </action>
      <action issue="LOG4J2-323" dev="rpopma" type="fix">
        Resolved memory leak by releasing reference to ThreadLocal when
        AsyncLogger is stopped.
      </action>
      <action issue="LOG4J2-425" dev="rpopma" type="fix">
        Resolved memory leak by populating AsyncLoggerConfigHelper ring buffer
        via EventTranslatorTwoArg, eliminating the need for a ThreadLocal.
      </action>
      <action issue="LOG4J2-420" dev="ggregory" type="add">
        Create a lookup for resource bundle substitution.
      </action>
      <action issue="LOG4J2-417" dev="ggregory" type="fix">
        Fix Event Level / LoggerConfig Level table at the architecture documentation page.
      </action>
      <action issue="LOG4J2-415" dev="ggregory" type="add">
        Format log event time as UNIX time (seconds or milliseconds).
      </action>
      <action issue="LOG4J2-404" dev="rgoers" type="fix" due-to="Kamal Bahadur">
        @EnterpriseNumber" was missing in the ID of structured data when RFC5424Layout is used
      </action>
      <action issue="LOG4J2-379" dev="rpopma" type="fix">
        Fixed issue that prevented Log4J from working in Google App Engine.
      </action>
      <action issue="LOG4J2-401" dev="ggregory" type="add">
        Configure FileAppender buffer size.
      </action>
      <action issue="LOG4J2-402" dev="ggregory" type="add">
        Configure RandomAccessFileAppender buffer size.
      </action>
      <action issue="LOG4J2-528" dev="ggregory" type="update">
        Rename package org.apache.logging.log4j.core.appender.rolling.helper to org.apache.logging.log4j.core.appender.rolling.action.
      </action>
      <action issue="LOG4J2-532" dev="ggregory" type="update">
        Resource leak in Flume appender when it cannot create a BerkeleyDB db.
      </action>
      <action issue="LOG4J2-413" dev="ggregory" type="update">
        PatternLayout option to not output ANSI escape codes if no Console is available.
      </action>
    </release>
    <release version="2.0-beta9" date="2013-09-14" description="Bug fixes and enhancements">
      <action issue="LOG4J2-317" dev="ggregory" type="update">
        Renamed FastFileAppender and FastRollingFileAppender to RandomAccessFileAppender
        and RollingRandomAccessFileAppender. Configurations using the Fast(Rolling)File element
        no longer work and should be modified to use the (Rolling)RandomAccessFile element.
      </action>
      <action dev="nickwilliams" type="update">
        Changed the "suppressExceptions" configuration attribute for all Appenders to "ignoreExceptions" to avoid
        confusion with Java 7 suppressed exceptions. Also renamed the Appender#isExceptionSuppressed() method to
        Appender#ignoreExceptions() to avoid the same confusion. All Appenders by default internally log and then ignore
        exceptions encountered while logging. Setting "ignoreExceptions" to "false" on an Appender causes it to allow
        exceptions to propagate to the caller. You must set "ignoreExceptions" to "false" for Appenders you are wrapping
        in the Failover Appender.
      </action>
      <action dev="nickwilliams" type="update">
        Changed the (relatively new) PatternLayout configuration attribute "suppressExceptions" to
        "alwaysWriteExceptions" to more correctly indicate what it does. As such, the meaning of this attribute has
        reversed (previous "true"s should become "false"s, and vice versa). Since this was an undocumented attribute up
        until now, it's unlikely this change will affect any users.
      </action>
      <action issue="LOG4J2-226" dev="rgoers" type="fix">
        Fix table of contents generation in pdf.
      </action>
      <action issue="LOG4J2-395" dev="rgoers" type="fix" due-to="Abhinav Shah">
        Allow classpath scheme when specifying configuration file location as a system property.
      </action>
      <action issue="LOG4J2-393" dev="rgoers" type="fix">
        Initialize PluginManager once during configuration. Move advertisement setup into BaseConfiguration.
      </action>
      <action issue="LOG4J2-391" dev="rgoers" type="fix" due-to="Kamal Bahadur">
        FlumePersistentManager now handles LockConflictExceptions in Berkeley Db.
      </action>
      <action issue="LOG4J2-399" dev="ggregory" type="add">
        Allow the default file rollover strategy to define the compression level.
      </action>
      <action issue="LOG4J2-338" dev="rgoers" type="add" due-to="Tibor Benke">
        Add TLSAppender. Also added missing license headers to several files.
      </action>
      <action issue="LOG4J2-380" dev="rgoers" type="fix">
        Use rollover date when substituting ${date} in the filePattern.
      </action>
      <action issue="LOG4J2-253" dev="rpopma" type="add">
        Added FAQ page to the site.
      </action>
      <action issue="LOG4J2-362" dev="rpopma" type="add">
        Add a diagram to the site (FAQ page) that explains when to use which jar.
      </action>
      <action issue="LOG4J2-322" dev="nickwilliams" type="fix">
        Centralized reflective use of Reflection#getCallerClass and properly handled its instability in various versions
        of Java.
      </action>
      <action issue="LOG4J2-293" dev="rgoers" type="fix">
        Reset the Configuration if the ClassLoaderContextSelector creates a LoggerContext without a configuration
        location and then is later provided one.
      </action>
      <action issue="LOG4J2-293" dev="nickwilliams" type="fix" due-to="Abhinav Shah">
        Changed the ConfigurationFactory to recognize and properly use the classpath: URI scheme in addition to the
        classloader: URI scheme.
      </action>
      <action issue="LOG4J2-359" dev="nickwilliams" type="fix" due-to="Abhinav Shah">
        Changed the Servlet 3.0 auto-initializer so that it does nothing in a Servlet 2.5 or older application. This
        ensures behavioral consistency across containers.
      </action>
      <action issue="LOG4J2-374" dev="ggregory" type="add" due-to="Tibor Benke">
        Add more options to PatternLayout to display more detailed information about a Throwable.
      </action>
      <action issue="LOG4J2-383" dev="ggregory" type="add">
        [Pattern Layout] Customize level names by length.
      </action>
      <action issue="LOG4J2-384" dev="ggregory" type="add">
        [Pattern Layout] Customize level names to lower-case.
      </action>
      <action issue="LOG4J2-355" dev="ggregory" type="update" due-to="Tibor Benke">
        Add support for multiple SD-ELEMENTs in a RFC 5424 syslog message.
      </action>
      <action dev="nickwilliams" type="update">
        Cleaned up tests and cleared up documentation for the JPA appender following the resolution of EclipseLink
        issue #412454.
      </action>
      <action issue="LOG4J2-310" dev="rpopma" type="fix" due-to="Olivier Lemasle">
        Fixed issue where SMTPAppender did not send mails with error or fatal level without prior info event.
      </action>
      <action issue="LOG4J2-368" dev="rgoers" type="fix">
        Add PatternLayout constructor to Log4j 1.2 bridge for Velocity.
      </action>
      <action issue="LOG4J2-333" dev="ggregory" type="fix" due-to="Hervé Boutemy">
        Match artifact ids with Maven module names.
      </action>
      <action issue="LOG4J2-364" dev="rgoers" type="add" due-to="David Nault">
        Add WebLookup to retrieve information from the ServletContext.
      </action>
      <action issue="LOG4J2-367" dev="ggregory" type="fix" due-to="David Parry">
        JMS appenders send two messages for one append.
      </action>
      <action issue="LOG4J2-319" dev="ggregory" type="fix">
        Double stack trace logging when using %throwable in %style and %highlight.
      </action>
      <action issue="LOG4J2-360" dev="rgoers" type="add">
        Allow Plugins to have aliases.
      </action>
      <action issue="LOG4J2-358" dev="nickwilliams" type="fix">
        NoSQLAppender using MongoDB provider ignores username and password attributes
      </action>
      <action issue="LOG4J2-356" dev="ggregory" type="add">
        Create a JSON Layout.
      </action>
      <action issue="LOG4J2-343" dev="rpopma" type="fix" due-to="Henning Schmiedehausen">
        Removed unnecessary generics from Appender interface and implementing classes.
      </action>
      <action issue="LOG4J2-351" dev="rpopma" type="fix" due-to="Roland Weiglhofer">
        [OSGi] wrong Fragment-Host in manifest files.
      </action>
      <action issue="LOG4J2-336" dev="rpopma" type="fix" due-to="Andre Bogus">
        AsyncLogger errors after multiple calls to LoggerContext.reconfigure().
      </action>
      <action issue="LOG4J2-347" dev="rpopma" type="fix" due-to="David Phillips">
        Give the AsyncAppender thread a more descriptive name for easier debugging/profiling.
      </action>
      <action issue="LOG4J2-332" dev="rgoers" type="fix" due-to="Hervé Boutemy">
        Modified documentation to refer to SLF4J Binding instead of SLF4J Bridge.
      </action>
      <action issue="LOG4J2-342" dev="rgoers" type="fix">
        Ignore xml:base attributes.
      </action>
      <action issue="LOG4J2-309" dev="rgoers" type="fix">
        Insure jars and distributions only have a single License and Notice file.
      </action>
      <action issue="LOG4J2-341" dev="ggregory" type="add">
        Enable XInclude for XML configurations.
      </action>
      <action issue="LOG4J2-320" dev="ggregory" type="fix">
        JPAAppender stops logging because META-INF/log4j-provider.properties is left open.
      </action>
      <action issue="LOG4J2-335" dev="rgoers" type="fix">
        FlumePersistentManager's writer thread had high CPU usage.
      </action>
      <action issue="LOG4J2-331" dev="nickwilliams" type="fix">
        Removed erroneous check for affected MongoDB records, which always returns zero on inserts.
      </action>
      <action issue="LOG4J2-330" dev="nickwilliams" type="fix">
        Added a BSON Transformer so that MongoDB can persist Log4j events.
      </action>
      <action issue="LOG4J2-329" dev="rgoers" type="fix">
        StatusLogger now only creates StatusData objects if they are the appropriate logging level.
      </action>
      <action issue="LOG4J2-328" dev="rgoers" type="fix">
        FlumePersistentManager was calling Berkeley DB's count method too frequently.
      </action>
      <action issue="LOG4J2-280" dev="rpopma" type="fix">
        Additional fix to make AsyncAppender threads daemon threads and improve their thread name.
      </action>
      <action issue="LOG4J2-165" dev="rgoers" type="fix">
        The slf4j-ext jar is now an optional dependency of the SLF4J bridge.
      </action>
      <action issue="LOG4J2-318" dev="rgoers" type="update">
        Allow shutdown hook to be disabled in the configuration.
      </action>
      <action issue="LOG4J2-166" dev="rgoers" type="fix">
        RoutingAppender's default Route can now be an appender reference.
      </action>
      <action issue="LOG4J2-313" dev="rgoers" type="add" due-to="Woonsan Ko">
        Add JNDILookup plugin.
      </action>
      <action issue="LOG4J2-299" dev="rgoers" type="fix">
        Add getThrowable method to ThrowableProxy.
      </action>
      <action issue="LOG4J2-216" dev="rgoers" type="fix">
        ThrowableProxy no longer extends Throwable.
      </action>
      <action issue="LOG4J2-311" dev="rpopma" type="fix">
        Synchronized flush() and close() methods in the XxxFileManager and OutputStreamManager classes.
      </action>
      <action issue="LOG4J2-312" dev="ggregory" type="update">
        XML layout improvements (compact vs. pretty, namespace, namespace prefix, root element).
      </action>
      <action issue="LOG4J2-388" dev="ggregory" type="update">
        Update Java Mail dependency to 1.5.0 from 1.4.7.
      </action>
      <action issue="LOG4J2-325" dev="ggregory" type="update">
        Update JDBC tests to use H2 database 1.3.173 from 1.3.172.
      </action>
      <action issue="LOG4J2-366" dev="ggregory" type="update">
        Update commons-logging to 1.1.3 from 1.1.1.
      </action>
      <action issue="LOG4J2-390" dev="ggregory" type="update">
        Update HSQLDB dependency to 2.3.0 from 2.2.9.
      </action>
      <action issue="LOG4J2-308" dev="rpopma" type="update">
        Clarified which library versions were used in Async Loggers performance test.
      </action>
      <action issue="LOG4J2-307" dev="rpopma" type="update">
        Updated Async Loggers' LMAX Disruptor library from 3.0.1 to 3.2.0.
      </action>
      <action issue="LOG4J2-306" dev="ggregory" type="update">
        Update JSON Jackson library to 2.2.2 from 2.2.1.
      </action>
      <action issue="LOG4J2-387" dev="ggregory" type="update">
        Update Jackson dependency to 1.9.13 from 1.9.11.
      </action>
      <action issue="LOG4J2-305" dev="ggregory" type="add">
        Ease porting from 1.x Logger.getRootLogger(): add LogManager.getRootLogger().
      </action>
      <action issue="LOG4J2-304" dev="rpopma" type="fix">
        Fixed Async Loggers memory leak.
      </action>
      <action issue="LOG4J2-291" dev="nickwilliams" type="fix">
        Fixed JDBC, JPA, and NoSQL appenders so that the failover appender properly fails over on error.
      </action>
      <action dev="nickwilliams" type="update">
        Improved site by adding quick jump-off page and menu for Javadoc links for all components.
      </action>
      <action issue="LOG4J2-397" dev="ggregory" type="fix" due-to="Yonatan Graber">
        Logger.info(Message) Javadoc is incorrect.
      </action>
    </release>
    <release version="2.0-beta8" date="2013-07-10" description="Bug fixes and enhancements">
      <action issue="LOG4J2-270" dev="nickwilliams" type="update">
        Improved logging initialization in Servlet containers, especially Servlet 3.0 and newer where Log4j now
        initializes and deinitializes automatically with no deployment descriptor configuration.
      </action>
      <action issue="LOG4J2-302" dev="rpopma" type="fix">
        Added toString methods to ThreadContextStack/Map implementation classes.
      </action>
      <action issue="LOG4J2-301" dev="rgoers" type="update">
        Add printf methods to Logger API.
      </action>
      <action issue="LOG4J2-300" dev="rgoers" type="fix">
        WriterThread was ending when no agents are available which caused an OutOfMemoryError.
      </action>
      <action issue="LOG4J2-282" dev="rgoers" type="update">
        Allow the default status level to be specified as a system property.
      </action>
      <action issue="LOG4J2-278" dev="rgoers" type="fix">
        Filter calls from Avro or Flume to be ignored by the FlumeAppender.
      </action>
      <action issue="LOG4J2-279" dev="rgoers" type="fix">
        FlumePersistentManager now calls Berkeley DB from threads to avoid encountering interrupts in the application.
      </action>
      <action issue="LOG4J2-296" dev="ggregory" type="fix">
        Wasted work in FlumePersistentManager.createManager.
      </action>
      <action issue="LOG4J2-297" dev="ggregory" type="fix">
        Wasted work in TestConfigurator.testEnvironment.
      </action>
      <action issue="LOG4J2-298" dev="ggregory" type="fix">
        Wasted work in StyleConverterTest.setupClass.
      </action>
      <action issue="LOG4J2-280" dev="rpopma" type="fix">
        AsyncLogger threads are now daemon threads and won't prevent the JVM from shutting down anymore.
      </action>
      <action issue="LOG4J2-295" dev="rpopma" type="fix">
        Fast(Rolling)FileAppender now correctly handles messages exceeding the buffer size.
      </action>
      <action issue="LOG4J2-271" dev="rpopma" type="fix">
        FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
      </action>
      <action issue="LOG4J2-267" dev="rpopma" type="fix">
        FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
      </action>
      <action issue="LOG4J2-292" dev="rpopma" type="fix">
        Fast(Rolling)FileAppender now correctly appends to (does not overwrite) existing file.
      </action>
      <action issue="LOG4J2-294" dev="rgoers" type="update">
        LogManager.getLogger can now be called without a logger name or with a null logger name.
      </action>
      <action issue="LOG4J2-289" dev="rgoers" type="fix">
        Upgrade javadoc plugin to 2.9.1 to fix javadoc security issue.
      </action>
      <action issue="LOG4J2-288" dev="gregory" type="update">
        Update JUnit to 4.11 from 4.7.
      </action>
      <action issue="LOG4J2-286" dev="gregory" type="update">
        Update test H2 JDBC driver to 1.172 from 1.171.
      </action>
      <action issue="LOG4J2-285" dev="gregory" type="update">
        Update Jansi jar to 1.11 from 1.9.
      </action>
      <action issue="LOG4J2-284" dev="gregory" type="update">
        Update Log4j 1 dependency to 1.2.17 from 1.2.16.
      </action>
      <action issue="LOG4J2-386" dev="gregory" type="update">
        Update NoSQL dependencies: lightcouch 0.0.6 from 0.0.5, mongodb 2.11.2 from 2.11.1.
      </action>
      <action issue="LOG4J2-283" dev="gregory" type="update">
        Remove dependency on Apache ORO jar.
      </action>
      <action issue="LOG4J2-277" dev="gregory" type="update">
        Wasted work in RollingAppenderSizeTest.testAppender() and others.
      </action>
      <action issue="LOG4J2-139" dev="rgoers" type="fix">
        Fix NullPointerException (regression due to fix for LOG4J2-228)
      </action>
      <action issue="LOG4J2-168" dev="rgoers" type="update" due-to="Scott Severtson">
        Include arbitrary message fields in RFC-5424 structured data.
      </action>
      <action issue="LOG4J2-275" dev="rgoers" type="fix">
        FlumeAvroManager fails to notify client of failing event if Flume RPCClient cannot be created.
      </action>
      <action issue="LOG4J2-274" dev="ggregory" type="update">
        Wasted work in UUIDUtil initialization.
      </action>
      <action issue="LOG4J2-273" dev="ggregory" type="update">
        Wasted work in XMLLayout.toSerializable().
      </action>
    </release>
    <release version="2.0-beta7" date="2013-06-01" description="Bug fixes and enhancements">
      <action issue="LOG4J2-249" dev="rgoers" type="update">
        Allow context parameters in Log4jContextListener to include properties.
      </action>
      <action issue="LOG4J2-263" dev="rgoers" type="fix">
        Do not allow a charset on RFC5424Layout - use UTF-8.
      </action>
      <action issue="LOG4J2-242" dev="rgoers" type="fix">
        StringFormattedMessage and MessageFormatMessage now will accept a Throwable as their last argument and
        pass it on.
      </action>
      <action issue="LOG4J2-243" dev="rgoers" type="update">
        Allow custom LogEventFactories.
      </action>
      <action issue="LOG4J2-262" dev="rgoers" type="update" due-to="Edward Sargisson">
        Add support for interceptors in the embedded Flume Appender.
      </action>
      <action issue="LOG4J2-269" dev="rgoers" type="fix">
        Use transaction when batch size is 1.
      </action>
      <action issue="LOG4J2-268" dev="rgoers" type="fix">
        Add guid to FlumeEvent headers for non-Map Messages.
      </action>
      <action issue="LOG4J2-246" dev="rgoers" type="fix">
        Data buffer is reset in finally clause.
      </action>
      <action issue="LOG4J2-228" dev="rgoers" type="fix">
        UDP now sends one event per packet.
      </action>
      <action dev="rpopma" type="update">
        Method name changes in interface org.apache.logging.log4j.spi.ThreadContextMap:
        getContext() to getCopy(), get() to getImmutableMapOrNull().
      </action>
      <action issue="LOG4J2-154" dev="rpopma" type="update">
        Improve ThreadContext performance with copy-on-write map and stack.
      </action>
      <action issue="LOG4J2-261" dev="rgoers" type="fix" due-to="Edward Sargisson">
        Add missing "not" to error message.
      </action>
      <action issue="LOG4J2-10" dev="rgoers" type="add" due-to="Timothy Ward">
        Break up core into multiple osgi jars.
      </action>
      <action issue="LOG4J2-223" dev="rgoers" type="fix">
        Remove LoggerContext when LoggerContext is stopped.
      </action>
      <action issue="LOG4J2-260" dev="ggregory" type="fix">
        XML layout does not specify charset in content type.
      </action>
      <action issue="LOG4J2-259" dev="ggregory" type="fix">
        HTML layout does not specify charset in content type.
      </action>
      <action issue="LOG4J2-258" dev="ggregory" type="fix">
        HTML layout does not output meta element for charset.
      </action>
      <action issue="LOG4J2-257" dev="ggregory" type="fix">
        XML layout ignores charset for the XML processing instruction's encoding attribute.
      </action>
      <action issue="LOG4J2-255" dev="rpopma" type="fix">
        Multi-byte character strings are now assumed to be in the platform default encoding, not UTF-8.
      </action>
      <action issue="LOG4J2-254" dev="rgoers" type="fix">
        Mark OutputStream in OutputStreamManager as volatile. Mark header and footer as final.
      </action>
      <action issue="LOG4J2-244" dev="rgoers" type="fix">
        Rewrite Appender was ignoring filters on referenced appenders.
      </action>
      <action issue="LOG4J2-245" dev="rgoers" type="fix">
        Avoid EmptyStack exception if getCallerClass and SecurityManager are not available.
      </action>
      <action issue="LOG4J2-229" dev="ggregory" type="add" due-to="Nick Williams">
        New JDBC, JPA, and NoSQL database Appenders.
      </action>
      <action issue="LOG4J2-247" dev="ggregory" type="fix">
        SocketServer.isActive should be volatile because it is accessed from different threads.
      </action>
      <action issue="LOG4J2-251" dev="sdeboy" type="add">
        Provide configuration information (location, content type, content if possible) via a registered Advertiser.
      </action>
    </release>
    <release version="2.0-beta6" date="2013-05-05" description="Bug fixes and enhancements">
      <action issue="LOG4J2-231" dev="rgoers" type="fix">
        Logger.getParent() was not returning the correct Logger.
      </action>
      <action issue="LOG4J2-201" dev="rgoers" type="fix">
        Renamed Plugin annotation attribute from "type" to "category".
      </action>
      <action issue="LOG4J2-237" dev="rpopma" type="update">
        Moved JMX Client GUI classes into separate jmx-gui submodule.
      </action>
      <action issue="LOG4J2-219" dev="rpopma" type="fix" due-to="Peter DePasquale">
        Fix: install default root logger if not configured (this is unchanged),
        but make sure to include configured named loggers. Clarified documentation.
      </action>
      <action issue="LOG4J2-159" dev="rgoers" type="fix">
        Use OSGi version format in Fragment-Host
      </action>
      <action issue="LOG4J2-234" dev="rgoers" type="fix">
        RegexFilter threw a NullPointerException when used as a context-wide filter.
      </action>
      <action issue="LOG4J2-192" dev="rgoers" type="fix">
        Add support for interpolating Environment variables when processing the configuration.
      </action>
      <action issue="LOG4J2-235" dev="rpopma" type="fix" due-to="Sebastian Oerding">
        Removed dependency on tools jar from core module, made jconsole dependency optional.
      </action>
      <action issue="LOG4J2-233" dev="rpopma" type="fix">
        Fixed link to log4j-user mailing list.
      </action>
      <action issue="LOG4J2-230" dev="rpopma" type="update" due-to="Wojciech Zaręba">
        Improved error reporting when misconfigured.
      </action>
      <action issue="LOG4J2-222" dev="rgoers" type="fix" due-to="Steven Yang">
        Disruptor will now shutdown during Tomcat shutdown.
      </action>
      <action dev="rpopma" type="update">
        Renamed AsynchAppender to AsyncAppender. Plugin name became Async (was Asynch).
      </action>
      <action dev="rpopma" type="update">
        Removed CheckStyle false positives for NewlineAtEndOfFile and whitespace following '*' at end of line in javadoc.
      </action>
      <action dev="rpopma" type="update">
        Moved Clock interface to package org.apache.logging.log4j.core.helpers.
      </action>
      <action issue="LOG4J2-225" dev="rpopma" type="update">
        Documentation updates to clarify use and impact of location in pattern layouts.
      </action>
      <action issue="LOG4J2-224" dev="rgoers" type="fix">
        The FlumeAppender failed to start if the Flume RPCClient could not connect to any Flume agents.
      </action>
      <action issue="LOG4J2-223" dev="rgoers" type="fix">
        Fix LoggerContext start and stop to eliminate IllegalStateException and NoClassDefFound errors.
      </action>
      <action issue="LOG4J2-221" dev="rgoers" type="fix" due-to="Nick Williams">
        Remove hundreds of compiler warnings.
      </action>
      <action issue="LOG4J2-215" dev="rpopma" type="fix">
        Various small documentation fixes.
      </action>
      <action issue="LOG4J2-217" dev="rpopma" type="fix" due-to="Fabien Sanglard">
        Ensure PluginManager streams are always closed.
      </action>
    </release>
    <release version="2.0-beta5" date="2013-04-20" description="Bug fixes and enhancements">
      <action issue="LOG4J2-205" dev="rgoers" type="fix">
        Fix deadlock in SocketAppender. Added option to not wait for socket reconnect.
      </action>
      <action issue="LOG4J2-207" dev="rgoers" type="add" due-to="Remko Popma">
        Add JMX support.
      </action>
      <action issue="LOG4J2-211" dev="rgoers" type="fix" due-to="Nick Williams">
        Removing extra spaces in entry and exit method output.
      </action>
      <action issue="LOG4J2-214" dev="rgoers" type="update" due-to="Remko Popma">
        Async documentation update.
      </action>
      <action issue="LOG4J2-212" dev="rgoers" type="fix">
        Loggers without a "." had no parent logger.
      </action>
      <action issue="LOG4J2-208" dev="rgoers" type="update" due-to="Remko Popma">
        Move async subproject into core.
      </action>
      <action issue="LOG4J2-212" dev="rgoers" type="fix">
        Call LoggerContext.stop when the application is shutdown.
      </action>
      <action issue="LOG4J2-210" dev="rgoers" type="fix" due-to="Arkin Yetis">
        MapMessage was not enclosing key value in quotes when generating XML.
      </action>
      <action issue="LOG4J2-198" dev="rgoers" type="fix">
        FlumeAvroManager now uses Flume RPCClient.
      </action>
      <action issue="LOG4J2-196" dev="rgoers" type="fix">
        FlumeAvroManager now uses Flume RPCClient.
      </action>
      <action issue="LOG4J2-207" dev="ggregory" type="fix">
        Use the Maven group ID org.apache.logging.log4j for all artifacts.
      </action>
      <action issue="LOG4J2-187" dev="rgoers" type="add" due-to="Nick Williams">
        Add tag library.
      </action>
      <action issue="LOG4J2-195" dev="rgoers" type="fix" due-to="Remko Popma">
        Unit tests now create files in the target directory.
      </action>
      <action issue="LOG4J2-193" dev="rgoers" type="fix" due-to="Remko Popma">
        RollingFastFileAppender (in log4j-async) did not roll over.
      </action>
      <action issue="LOG4J2-199" dev="rgoers" type="fix" due-to="Remko Popma">
        Highlight subprojects in sub-navigation.
      </action>
      <action issue="LOG4J2-200" dev="rgoers" type="fix" due-to="Remko Popma">
        LoggerContext method renamed to removeFilter from removeFiler.
      </action>
      <action issue="LOG4J2-194" dev="rgoers" type="fix" due-to="Remko Popma">
        ThrowableFormatOptionsTest failed on Windows due to CR/LF issue.
      </action>
      <action issue="LOG4J2-190" dev="rgoers" type="fix" due-to="Werner">
        BaseConfiguration addLoggerAppender saved appender using the Logger name.
      </action>
      <action issue="LOG4J2-160" dev="rgoers" type="update" due-to="Joanne Polsky">
        Move Throwable pattern converter options processing to ThrowableFormatOptions class.
      </action>
      <action issue="LOG4J2-157" dev="rgoers" type="update" due-to="Remko Popma">
        Allowed Loggers access to the properties in the LoggerConfig.
      </action>
      <action issue="LOG4J2-153" dev="rgoers" type="update" due-to="Remko Popma">
        Added ability to include or exclude location information.
      </action>
      <action issue="LOG4J2-151" dev="rgoers" type="update" due-to="Remko Popma">
        Allow Logger and LoggerContext to be subclassed.
      </action>
      <action issue="LOG4J2-164" dev="rgoers" type="add" due-to="Remko Popma">
        Add methods is/setEndOfBatch to LogEvent.
      </action>
      <action issue="LOG4J2-163" dev="rgoers" type="add" due-to="Remko Popma">
        Add support for asynchronous loggers.
      </action>
      <action issue="LOG4J2-189" dev="rgoers" type="fix" due-to="Werner">
        The blocking parameter did not work properly on AsynchAppender.
      </action>
      <action issue="LOG4J2-188" dev="rgoers" type="fix" due-to="Werner">
        AppenderRefs on AsynchAppender didn't support the level and filter elements.
      </action>
      <action issue="LOG4J2-176" dev="rgoers" type="fix" due-to="Remko Popma">
        Avoid IllegalArgumentException in AsynchAppender.
      </action>
      <action issue="LOG4J2-179" dev="ggregory" type="add">
        Add Logger interface APIs to log at given levels.
      </action>
      <action issue="LOG4J2-181" dev="rgoers" type="fix">
        OutputStreamManager now adds the layout header whenever the OutputStream is set.
      </action>
      <action issue="LOG4J2-177" dev="rgoers" type="fix" due-to="Remko Popma">
        Fix NullPointerException in DatagramOutputStream when flush is called from multiple threads.
      </action>
      <action dev="rgoers" type="add">
        Added FlumePersistentManager which writes to BerkeleyDB and then writes to Flume asynchronously.
      </action>
      <action issue="LOG4J2-175" dev="sdeboy" type="fix">
        Plugin cache should be reset when addPackages is called.
      </action>
      <action issue="LOG4J2-155" dev="sdeboy" type="add">
        Expose file appender configuration details via an advertisement mechanism.
      </action>
      <action issue="LOG4J2-159" dev="rgoers" type="fix" due-to="Jan Winter">
        Add Fragment-Host to MANIFEST.MF for log4j-core.
      </action>
      <action issue="LOG4J2-167" dev="rgoers" type="fix">
        Configurator throws a ClassCastException if LogManager returns a SimpleLoggerContext.
      </action>
      <action issue="LOG4J2-169" dev="rgoers" type="fix">
        ConfigurationFactory was adding factories on every call.
      </action>
      <action issue="LOG4J2-161" dev="rgoers" type="fix">
        Modify ClassLoaderContextSelector to use the first ClassLoader in the child parent hierarchy that
        has a Context with a configuration to allow JSPs to use the WebApp's context and configuration.
      </action>
      <action issue="LOG4J2-158" dev="rgoers" due-to="Scott Severtson">
        Add RFC 5424 compliant escaping rules to RFC5424Layout.
      </action>
    </release>
    <release version="2.0-beta4" date="2013-01-28" description="Bug fixes and enhancements">
      <action issue="LOG4J2-156" dev="ggregory" type="fix" due-to="Andreas Born">
        LocalizedMessageTest fails on linux system.
      </action>
      <action issue="LOG4J2-152" dev="rgoers" type="fix" due-to="Remko Popma">
        RollingFileAppender's FileRenameAction was throwing a NullPointerException if no directory was specified
        on the target file name.
      </action>
      <action issue="LOG4J2-150" dev="rgoers" type="fix">
        Convert all System.getProperty calls to use PropertiesUtil to suppress SecurityExceptions.
      </action>
      <action issue="LOG4J2-147" dev="rgoers" type="fix" due-to="William Burns">
        ThreadContextMapFilter was matching on the key instead of the value of the key.
      </action>
      <action dev="rgoers" type="fix">
        Allow FlumeAvroManager to initialize even if it cannot connect to an agent.
      </action>
      <action issue="LOG4J2-149" dev="rgoers" type="fix" due-to="Scott Severtson">
        SMTPAppender will only cache filtered events.
      </action>
      <action issue="LOG4J2-145" dev="ggregory" type="fix">
        Add missing serial version IDs.
      </action>
      <action issue="LOG4J2-144" dev="ggregory" type="fix">
        NullPointerException in RFC5424Layout.
      </action>
      <action issue="LOG4J2-143" dev="rgoers" type="fix">
        MessagePatternConverter now returns "null" if the log message is null.
      </action>
      <action issue="LOG4J2-142" dev="rgoers" type="fix">
        Serialized LogEvents were not reset in the output stream causing them to deserialize incorrectly.
      </action>
      <action issue="LOG4J2-139" dev="rgoers" type="fix">
        Fix null pointer exception in SocketAppender if no protocol is specified. The protocol will default
        to TCP for the SocketAppender and UDP for the SyslogAppender.
      </action>
      <action dev="rgoers" type="add">
        Added Log4j 2 to SLF4J adapter.
      </action>
      <action issue="LOG4J2-140" dev="ggregory" type="fix" due-to="Joern Huxhorn">
        Typo in documentation of SocketAppender.
      </action>
      <action issue="LOG4J2-137" dev="rgoers" type="fix">
        Fix hang in Dumbster SMTP test server.
      </action>
      <action issue="LOG4J2-136" dev="rgoers" type="update" due-to="Scott Severtson">
        Allow newlines to be escaped in Syslog and RFC5424 layouts. Allow Throwables to be included in
        the output from RFC5424Layout.
      </action>
      <action issue="LOG4J2-131" dev="rgoers" type="add" due-to="Scott Severtson">
        Add SMTPAppender.
      </action>
      <action issue="LOG4J2-130" dev="rgoers" type="fix">
        PatternLayout should format throwables without requiring a converter.
      </action>
      <action dev="rgoers" type="add">
        Added hostName and contextName to property map.
      </action>
      <action issue="LOG4J2-135" dev="ggregory" type="fix" due-to="Ingo Feltes">
        BaseConfiguration does not close the first appender.
      </action>
      <action dev="rgoers" type="add">
        Add MessageFormatMessage and FormattedMessage.
      </action>
      <action issue="LOG4J2-134" dev="ggregory" type="add">
        Use %red, %white, %blue, and so on in the console appender.
      </action>
      <action issue="LOG4J2-133" dev="ggregory" type="add">
        Allow custom message creation via a message factory.
      </action>
      <action issue="LOG4J2-132" dev="ggregory" type="fix">
        AbstractLogger.catching(Throwable) checks for DEBUG level but logs at ERROR level.
      </action>
      <action issue="LOG4J2-129" dev="rgoers" type="fix">
        RoutingAppender was only creating a single appender for the default Route.
      </action>
      <action issue="LOG4J2-126" dev="rgoers" type="fix">
        Allow JMS appenders to recover if the queue or topic is unavailable.
      </action>
      <action issue="LOG4J2-128" dev="rgoers" type="update">
        Add follow attribute to Console Appender.
      </action>
      <action issue="LOG4J2-127" dev="rgoers" type="fix">
        AbstractLogger methods were not passing Markers to the isEnabled methods.
      </action>
      <action dev="rgoers" type="add">
        Added Flume Appender samples.
      </action>
      <action issue="LOG4J2-122" dev="rgoers" type="update">
        Add unit test to verify exceptions are thrown when the socket connection fails.
      </action>
      <action issue="LOG4J2-125" dev="rgoers" type="fix">
        JMSQueue and JMSTopic Appenders did not allow name to be specified.
      </action>
      <action issue="LOG4J2-111" dev="rgoers" type="fix">
        Enhanced javadoc copyright statement.
      </action>
      <action issue="LOG4J2-110" dev="rgoers" type="update">
        Renamed log4j12-api to log4j-1.2-api.
      </action>
      <action issue="LOG4J2-120" dev="rgoers" type="fix">
        TCPSocketManager would fail if the initial connection could not be established.
      </action>
      <action issue="LOG4J2-119" dev="rgoers" type="fix">
        A broken socket connection would cause the TCPSocketManager to continuously reconnect.
      </action>
      <action issue="LOG4J2-123" dev="rgoers" type="fix" due-to="Olivier Lamy">
        The example for ThreadContextMapFilter was incorrect.
      </action>
      <action issue="LOG4J2-116" dev="rgoers" type="fix">
        File renaming was using the wrong date value. Enhanced DefaultRolloverStrategy to store newest files in
        highest index as well as lowest.
      </action>
      <action issue="LOG4J2-115" dev="rgoers" type="fix">
        ThreadContext Map elements with null values are now ignored when constructing a Flume event and in the
        RFC5424 Layout.
      </action>
      <action issue="LOG4J2-113" dev="rgoers" type="fix">
        StructuredDataFilter createFilter was annotated with PluginAttr instead of PluginElement for the
        KeyValuePairs.
      </action>
      <action issue="LOG4J2-114" dev="rgoers" type="fix" due-to="Arkin Yetis">
        StructuredDataMessage was validating the length of the values in the event Map instead of the lengths
        of the keys.
      </action>
    </release>
    <release version="2.0-beta3" date="2012-11-11" description= "Bug fixes and enhancements">
      <action issue="LOG4J2-108" dev="rgoers" type="fix">
        Fix NullPointerException in ClassLoaderContextSelector when no class is returned from
        the SecurityManager.
      </action>
      <action issue="LOG4J2-105" dev="rgoers" type="update">
        Add ability to customize the names of the Levels in the LevelPatternConverter.
      </action>
      <action issue="LOG4J2-107" dev="rgoers" type="fix">
        PatternParser was not properly handling adjacent nested options
      </action>
      <action issue="LOG4J2-95" dev="rgoers" type="fix">
        Add support for loading plugins inside the OSGi bundle.
      </action>
      <action issue="LOG4J2-85" dev="rgoers" type="update">
        Add ThreadContext.push(String format, Object... args)
      </action>
      <action issue="LOG4J2-103" dev="rgoers" type="fix" due-to="Das Archive">
        The LogEvent was wrapping a ThrowableProxy with another ThrowableProxy when deserializing.
      </action>
      <action dev="rgoers" type="update">
        Created combined jar to combine API and Core contents for users who only want the Log4j implementation.
      </action>
      <action issue="LOG4J2-104" dev="rgoers" type="fix">
        Convert LogManager binding to use "regular" java properties instead of XML properties to workaround a
        bug in Oracle's xmlparserv2 jar.
      </action>
      <action issue="LOG4J2-28" dev="rgoers" type="add">
        Added PropertiesRewritePolicy and ability to define properties on a Logger.
      </action>
      <action issue="LOG4J2-87" dev="rgoers" type="update">
        Build pdf of user's guide.
      </action>
      <action issue="LOG4J2-29" dev="rgoers" type="update">
        Added font and fontSize parameters to HTMLLayout. Replace newlines in message with br tag.
      </action>
      <action issue="LOG4J2-55" dev="rgoers" type="add">
        Added ability to configure from an InputSource.
      </action>
      <action issue="LOG4J2-102" dev="rgoers" type="fix" due-to="Emanuele Colombo">
        The Facility value was being improperly calculated.
      </action>
      <action issue="LOG4J2-101" dev="rgoers" type="fix" due-to="Emanuele Colombo">
        A NullPointerException would occur if no format value was passed to the SyslogAppender.
      </action>
      <action issue="LOG4J2-99" dev="rgoers" type="fix" due-to="Das Archive">
        MapRewritePolicy had an extra call to putAll that caused updates to behave like adds.
      </action>
      <action dev="rgoers" type="fix">
        Avoid NPE when duplicate LoggerContextFactorys are present. Allow factories to specify a weight to allow
        real implementations to outrank test implementations. Provide a simple default LoggerContextFactory.
      </action>
      <action issue="LOG4J2-97" dev="rgoers" type="fix">
        Added several missing classes and methods for Log4j 1.x compatibility.
      </action>
      <action issue="LOG4J2-94" dev="rgoers" type="fix" due-to="Denis Treskunov">
        Interpolator was not stripping Lookup key separator when trying to locate the default value for a variable.
      </action>
      <action dev="rgoers" type="fix">
        Log4j 1.2 Category.forcedLog was wrapping the message with an ObjectMessage even if the parameter was an
        ObjectMessage.
      </action>
    </release>
    <release version="2.0-beta2" date="2012-10-07" description="Bug fixes and enhancements">
      <action dev="rgoers" type="update">
        Made ParameterizedMessage, StringFormattedMessage and ThreadDumpMessage immutable. LocalizedMessage is
        immutable except that it will be updated with the logger name when it is added to the LogEvent.
      </action>
      <action dev="rgoers" type="fix">
        DefaultConfiguration was not starting the Console Appender.
      </action>
      <action issue="LOG4J2-35" dev="rgoers" type="add">
        Add interval and modulate options to TimeBasedTriggeringPolicy to allow more fine-grained control of
        when file rolling should occur.
      </action>
      <action issue="LOG4J2-58" dev="rgoers" type="add">
        Add support for filtering packages from stack traces.
      </action>
      <action issue="LOG4J2-84" dev="rgoers" type="add">
        If system property "disableThreadContextStack" is set pushes to the ThreadContext will be ignored. If
        system property "disableThreadContext" is set both puts and pushes will be ignored.
      </action>
      <action issue="LOG4J2-83" dev="rgoers" type="add">
        If system property "disableThreadContextMap" is set puts to the ThreadContext will be ignored. If
        system property "disableThreadContext" is set both puts and pushes will be ignored.
      </action>
      <action dev="rgoers" type="add">
        Add support for ANSI colors by adding the highlight and style pattern converters. Fix pattern
        parsing to allow nested patterns.
      </action>
      <action issue="LOG4J2-92" dev="rgoers" type="fix">
        Converted DynamicThresholdFilter to use KeyValuePair. Fixed bugs in the Map-based filters
        to allow declaration of multiple values for a key to match the documentation.
      </action>
      <action issue="LOG4J2-88" dev="rgoers" type="fix">
        Many logging methods in AbstractLogger were set to an incorrect logging level. catching was
        using the THROWING marker and was set to debug instead of error.
      </action>
      <action dev="rgoers" type="add">
        Allow the status logging to be directed to stderr or to a file.
      </action>
      <action issue="LOG4J2-91" dev="rgoers" type="fix">
        Log4j 1.2 adapter's Category class was missing 3 log methods.
      </action>
      <action issue="LOG4J2-84" dev="rgoers" type="fix">
        If the ThreadContext stack is empty the LogEvent will contain a null value to reduce the overhead of
        creating log events and in the size of the serialized object. Changed the ThreadContext stack to use
        a custom stack interface instead of java.util.Stack as that class is overly heavy. This change will
        cause an API incompatibility.
      </action>
      <action issue="LOG4J2-83" dev="rgoers" type="fix">
        If the ThreadContext map is empty the LogEvent will contain a null value to reduce the overhead of creating
        log events and in the size of the serialized object.
      </action>
      <action dev="rgoers" type="add">
        Add getFormats to MultiformatMessage and allow StructuredDataMessage to format as XML.
      </action>
      <action issue="LOG4J2-90" dev="rgoers" type="fix">
        Add documentation on client vs server mode to performance page.
      </action>
      <action dev="rgoers" type="fix">
        Move variable substitution from PatternLayout to appropriate converters to improve performance.
      </action>
    </release>
    <release version="2.0-beta1" date="2012-09-18" description="Bug fixes and enhancements">
      <action dev="rgoers" type="add">
        Added AsynchAppender.
      </action>
      <action issue="LOG4J-81" dev="rgoers" type="fix">
        PatternLayout was not honoring format modifiers.
      </action>
      <action dev="rgoers" type="fix">
        Created web module to allow web applications to include the Log4j context listener in WEB-INF/lib even if
        Log4j is in the container's class path. Allow locating the LoggerContext to include the ClassLoader. Updated
        the Loader utility to always choose the child ClassLoader. Verified in Jboss 5 and Tomcat.
      </action>
      <action issue="LOG4J2-82" dev="rgoers" type="fix">
        MarkerFilter called MarkerManager.getMarker causing the Marker to be created during the processing of the
        configuration. This prevents the application from creating the Marker with any parents. MarkerWrapper in
        SLF4J-impl was getting a ClassCastException in instanceOf because the Marker isn't a MarkerWrapper.
      </action>
      <action issue="LOG4J2-80" dev="rgoers" type="fix" due-to="Oliver Lamy">
        Allow Log4j 2 to be used as the implementation with SLF4J and SLF4J's jcl-over-slf4j by adding filtering
        to the log method in SLF4JLogger.
      </action>
      <action issue="LOG4J2-78" dev="rgoers" type="fix">
        LogFactoryImpl.setAttribute in the Commons Logging bridge got a NullPointerException when passed a null value.
        It will now remove the attribute.
      </action>
      <action issue="LOG4J2-77" dev="rgoers" type="fix">
        RoutingAppender was calling the stop method for each of its referenced Appenders and was calling
        the stop method of the default Appender a second time. It will now only call the stop method of
        Appenders it creates.
      </action>
      <action issue="LOG4J2-76" dev="rgoers" type="fix">
        RewriteAppender was calling the stop method of the referenced appender causing the referenced appender's
        manager to have its use count decremented too many times.
      </action>
      <action issue="LOG4J2-74" dev="rgoers" type="fix">
        Logger.error(Marker, Message, Throwable) was internally using Level.TRACE.
      </action>
      <action issue="LOG4J2-75" dev="rgoers" type="fix">
        Enhanced Log4jContextListener to accept a configuration file location. Modified FileConfigurationMonitor
        to monitor files configured that way. Fixed other reconfiguration related bugs. Tested in JBoss and
        Tomcat.
      </action>
      <action issue="LOG4J2-72" dev="rgoers" type="fix">
        NullPointerException in RollingFileManager when filePattern does not cause the file to be compressed.
      </action>
      <action issue="LOG4J2-71" dev="rgoers" type="fix">
        FileRenameAction did not create the parent directories of the archive files causing the rollover to fail.
      </action>
      <action dev="rgoers" type="update">
        Update the versions of SLF4J and Logback.
      </action>
    </release>
    <release version="2.0-alpha2" date="2012-08-24" description="Bug fixes and minor enhancements">
      <action issue="LOG4J2-70" dev="rgoers" type="add">
        Add getLogger(Class) to LogManager.
      </action>
      <action issue="LOG4J2-69" dev="rgoers" type="add">
        Allow Flume agents to be embedded into the Flume Appender.
      </action>
      <action issue="LOG4J2-68" dev="rgoers" type="add">
        Add support for formatting using String.format().
      </action>
      <action issue="LOG4J2-67" dev="rgoers" type="add">
        Allow components besides core to create a PluginMap for faster plugin loading and not
        having to specify the plugin package in the configuration.
      </action>
      <action issue="LOG4J2-64" dev="rgoers" type="fix">
        Fix compilation problems in Java 7.
      </action>
      <action issue="LOG4J2-65" dev="rgoers" type="fix">
        Allow variable substitution on the configuration attributes and on the root log level.
      </action>
    </release>
    <release version="2.0-alpha1" date="2012-07-29" description="Rewrite of Log4j">
      <action issue="LOG4J2-60" dev="rgoers" type="add" due-to="Shane Kelly">
        Added ability to filter on the AppenderRef by adding either a level or a filter.
      </action>
      <action issue="LOG4J2-56" dev="rgoers" type="fix" due-to="John Owen Atala">
        Level.toLevel would throw an IllegalArgumentException instead of returning the default value.
      </action>
      <action issue="LOG4J2-51" dev="rgoers" type="fix" due-to="John Vasileff">
        Remove LoggerContext support for custom logger factories. All Loggers returned
        by LoggerContext should be compatible and of the same type.
      </action>
      <action issue="LOG4J2-50" dev="rgoers" type="fix" due-to="John Vasileff">
        Make sure all application facing log methods use their own FQCN. This patch
        resolves a unit test failure for the %C pattern when using the Category logger.
      </action>
    </release>
  </body>
</document>
