<?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.13.0" date="2019-12-11" description="GA Release 2.13.0">
      <action issue="LOG4J2-2058" dev="rgoers" type="fix">
        Prevent recursive calls to java.util.LogManager.getLogger().
      </action>
      <action issue="LOG4J2-2725" dev="ckozak" type="fix" due-to="Dzmitry Anikechanka">
        LOG4J2-2725 - Added try/finally around event.execute() for RingBufferLogEventHandler to clear memory
        correctly in case of exception/error
      </action>
      <action issue="LOG4J2-2635" dev="rgoers" type="fix" due-to="Filipp Gunbin">
        Wrong java version check in ThreadNameCachingStrategy.
      </action>
      <action issue="LOG4J2-2674" dev="rgoers" type="fix" due-to="Anton Korenkov">
        Use a less confusing name for the CompositeConfiguration source.
      </action>
      <action issue="LOG4J2-2732" dev="rgoers" type="add" due-to="Matt Pavlovich">
        Add ThreadContext.putIfNotNull method.
      </action>
      <action issue="LOG4J2-2731" dev="rgoers" type="add">
        Add a Level Patttern Selector.
      </action>
      <action issue="LOG4J2-2701" dev="rgoers" type="update">
        Update Jackson to 2.9.10.
      </action>
      <action issue="LOG4J2-2727" dev="rogers" type="fix" due-to="Clément Mathieu">
        Add setKey method to Kafka Appender Builder.
      </action>
      <action issue="LOG4J2-2707" dev="rgoers" type="fix" due-to="Christian Frank">
        ArrayIndexOutOfBoundsException could occur with MAC address longer than 6 bytes.
      </action>
      <action issue="LOG4J2-63" dev="rgoers" type="add">
        Add experimental support for Log4j 1 configuration files.
      </action>
      <action issue="LOG4J2-2712" dev="rgoers" type="fix">
        The rolling file appenders would fail to compress the file after rollover if the file name matched the
        file pattern.
      </action>
      <action issue="LOG4J2-2716" dev="rgoers" type="add">
        Add the ability to lookup Kubernetes attributes in the Log4j configuration. Allow Log4j properties to
        be retrieved from the Spring environment if it is available.
      </action>
      <action issue="LOG4J2-2710" dev="rgoers" type="add">
        Allow Spring Boot application properties to be accessed in the Log4j 2 configuration. Add
        lower and upper case Lookups.
      </action>
      <action issue="LOG4J2-2709" dev="rgoers" type="update">
        Allow message portion of GELF layout to be formatted using a PatternLayout. Allow
        ThreadContext attributes to be explicitly included or excluded in the GelfLayout.
      </action>
      <action issue="LOG4J2-2693" dev="mattsicker" type="fix">
        @PluginValue does not support attribute names besides "value".
      </action>
      <action issue="LOG4J2-2647" dev="mattsicker" type="fix">
        Validation blocks definition of script in properties configuration.
      </action>
      <action issue="LOG4J2-2680" dev="rgoers" type="fix" due-to="Guillermo Xavier Hurtado Garcia">
        Set result of rename action to true if file was copied.
      </action>
      <action issue="LOG4J-2672" dev="rgoers" type="fix" due-to="Stephen Colebourne">
        Add automatic module names where missing.
      </action>
      <action issue="LOG4J2-2639" dev="rgoers" type="add">
        Add builder pattern to Logger interface.
      </action>
      <action issue="LOG4J2-2673" dev="ggregory" type="fix" due-to="Yuichi Sugimura">
        OutputStreamAppender.Builder ignores setFilter().
      </action>
      <action issue="LOG4J2-2725" dev="ckozak" type="fix" due-to="Dzmitry Anikechanka">
        Prevent a memory leak when async loggers throw errors.
      </action>
    </release>
    <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>
