<?xml version="1.0" encoding="UTF-8"?>
<!-- vi: set sw=2: -->
<!--
   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="3.0.0" date="2019-xx-xx" description="GA Release 3.0.0">
      <action issue="LOG4J2-2678" dev="rgoers" type="update" due-to="Federico D'Ambrosio">
        Add LogEvent timestamp to ProducerRecord in KafkaAppender.
      </action>
      <actino issue="LOG4J2-2688" dev="rgoers" type="add" due-to="Romain Manni-Bucau">
        Allow web lookup of session attributes.
      </actino>
      <action issue="LOG4J2-2701" dev="rgoers" type="update">
        Update Jackson from 2.9.x to 2.10.1.
      </action>
      <action issue="LOG4J2-2700" dev="mattsicker" type="add">
        Add support for injecting plugin configuration via builder methods.
      </action>
      <action issue="LOG4J2-860" dev="mattsicker" type="update">
        Unify plugin builders and plugin factories.
      </action>
      <action issue="LOG4J2-2690" dev="rgoers" type="update">
        Locate plugins in modules.
      </action>
      <action issue="LOG4J2-2617" dev="mattsicker" type="update">
        Fix typo in method MergeStrategy.mergeConfigurations.
      </action>
      <action issue="LOG4J2-2683" dev="mattsicker" type="update">
        Rename PluginVisitor and related classes to ConfigurationInjectionBuilder.
      </action>
      <action issue="LOG4J2-2523" dev="rgoers" type="update" due-to="Romain Manni-Bucau">
        Allow web lookup to access more information.
      </action>
      <action issue="LOG4J2-2621" dev="rgoers" type="update">
        Separate plugin support to its own module. Plugin annotation processor will now generate a Java source
        file compatible with java.util.ServiceLoader instead of a binary file.
      </action>
      <action issue="LOG4J2-2025" dev="rgoers" type="add" due-to="Thies Wellpott">
        Implement JUL Bridge Handler.
      </action>
      <action issue="LOG4J2-2171" dev="rmannibucau" type="add">
        Allow to force LOG4J2 to use TCCL only.
      </action>
      <action issue="LOG4J2-1802" dev="mattsicker" type="add">
        Convert documentation into AsciiDoc format.
      </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-2255" dev="rgoers" type="update">
        Use Spotbugs instead of Findbugs. Minimum version is Java 8.
      </action>
      <action issue="LOG4J2-2224" dev="rpopma" type="update">
        Renamed package core.util.datetime to core.time.internal.format to clarify these classes are to be considered private.
      </action>
      <action issue="LOG4J2-2225" dev="rpopma" type="update">
        Moved time-related classes from core.util to core.time. Classes considered private moved to core.time.internal.
      </action>
      <action issue="LOG4J2-2228" dev="ggregory" type="update">
        Split off ZeroMq/JeroMq support into a new module log4j-jeromq.
      </action>
      <action issue="LOG4J2-2227" dev="ggregory" type="update">
        Split off Kafka support into a new module log4j-kafka.
      </action>
      <action issue="LOG4J2-2230" dev="ggregory" type="update">
        Split off SMTP support into a new module log4j-smtp.
      </action>
      <action issue="LOG4J2-2231" dev="ggregory" type="update">
        Move CSV layout from log4j-core to a new module log4j-csv.
      </action>
      <action issue="LOG4J2-2232" dev="ggregory" type="update">
        Move JMS code to a new module log4j-jms.
      </action>
      <action issue="LOG4J2-2233" dev="ggregory" type="update">
        Move JDBC code to a new module log4j-jdbc.
      </action>
      <action issue="LOG4J2-2244" dev="ggregory" type="fix">
        org.apache.logging.log4j.core.lookup.EnvironmentLookup may throw NPE.
      </action>
      <action issue="LOG4J2-2237" dev="ggregory" type="update">
        Move Jackson-based layouts to their own modules: JSON, XML, and YAML.
      </action>
      <action issue="LOG4J2-2082" dev="ggregory" type="update">
        Update Apache Flume from 1.7.0 to 1.8.0.
      </action>
      <action issue="LOG4J2-2079" dev="ggregory" type="update" >
        Update Conversant Disruptor from 1.12.10 to 1.12.11.
      </action>
      <action issue="LOG4J2-2258" dev="ggregory" type="update" >
        Update LMAX Disruptor from 3.3.7 to 3.3.8.
      </action>
      <action issue="LOG4J2-2083" dev="ggregory" type="update">
        Update Eclipse javax.persistence from 2.1.1 to 2.2.0.
      </action>
      <action issue="LOG4J2-2083" dev="ggregory" type="update">
        Update build to expect Java 8 sources and generate Java 8 byte codes.
      </action>
      <action issue="LOG4J2-2279" dev="ggregory" type="fix" due-to="Remko Popma">
        Move ProcessIdUtil from log4j-api to log4j-core.
      </action>
      <action issue="LOG4J2-2306" dev="ckozak" type="fix">
        FixedDateFormat parses timezone offsets, -8:00 is interpreted as GMT-8:00.
      </action>
      <action issue="LOG4J2-2380" dev="ggregory" type="update">
        Update Conversant Disruptor 1.2.11 to 1.2.13.
      </action>
      <action issue="LOG4J2-2383" dev="ggregory" type="update">
        Update org.eclipse.persistence.jpa from 2.7.1 to 2.7.2
      </action>
      <action issue="LOG4J2-2387" dev="ggregory" type="update">
        Update optional Apache Commons DBCP from 2.4.0 to 2.5.0.
      </action>
      <action issue="LOG4J2-2473" dev="ggregory" type="update">
        Update org.eclipse.persistence:javax.persistence from 2.2.0 to 2.2.1.
      </action>
      <action issue="LOG4J2-2492" dev="ggregory" type="update">
        Update builder methods from the "with" prefix to the "set" prefix.
      </action>
      <action issue="LOG4J2-2493" dev="ggregory" type="update">
        Remove deprecated code.
      </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-2545" dev="ckozak" type="fix">
        RoutingAppender.BuilderlsetPurgePolicy fluently returns the builder instance.
      </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">
        Update Jackson from 2.9.7 to 2.9.8.
      </action>
      <action issue="LOG4J2-2571" dev="ggregory" type="update">
        Update conversant disruptor from 1.2.13 to 1.2.15.
      </action>
      <action issue="LOG4J2-2572" dev="ggregory" type="update">
        Update Apache Flume from 1.8.0 to 1.9.0.
      </action>
    </release>
    <release version="2.13.1" date="2019-MM-DD" description="GA Release 2.13.1">
      <action issue="LOG4J2-2746" dev="rgoers" type="fix">
        ClassLoaderContextSelector was not locating the LoggerContext during shutdown.
      </action>
      <action issue="LOG4J2-2649" dev="rgoers" type="fix">
        GraalVM does not allow use of MethodHandles.
      </action>
      <action issue="LOG4J2-2211" dev="rgoers" type="fix">
        Allow Lookup keys with leading dashes by using a slash as an escape character.
      </action>
      <action issue="LOG4J2-2782" dev="rgoers" type="update">
        Use LinkedBlockingQueue instead of synchronized collction in StatusConfiguration.
      </action>
      <action issue="LOG4J2-2781" dev="rgoers" type="fix" due-to="qxo">
        ServletContainerInitializer was obtaining the StatusLogger too soon.
      </action>
      <action issue="LOG4J2-2703" dev="goers" type="fix" due-to="Volkan Yazici">
        MapMessage.getFormattedMesssage() would incorrectly format objects.
      </action>
      <action issue="LOG4J2-2760" dev="rgoers" type="fix" due-to="Christoph Kaser">
        Always write header on a new OutputStream.
      </action>
      <action issue="LOG4J2-2777" dev="rgoers" type="update" due-to="joongs4">
        Add a retry count attribute to the KafkaAppender.
      </action>
      <action issue="LOG4J2-2776" dev="rgoers" type="fix" due-to="Christoph Kaser">
        An error message in RollingFileAppender uses a placeholder for the name but does not specify the name
        argument in the logging call
      </action>
      <action issue="LOG4J2-2758" dev="rgoers" type="fix" due-to="Christoph Kaser">
        NullPointerException when using a custom DirectFileRolloverStrategy without a file name.
      </action>
      <action issue="LOG4J2-2768" dev="rgoers" type="fix" due-to="Marius Volkhart">
        Add mulit-parameter overloads to LogBuilder.
      </action>
      <action issue="LOG4J2-2770" dev="rgoers" type="fix" due-to="Bill Kuker">
        Fixed NullPointerException after reconfiguring via JMX.
      </action>
      <action issue="LOG4J2-2759" dev="rgoers" type="fix">
        RollingFileAppender was not rolling on startup if createOnDemand was set to true.
      </action>
      <action issue="LOG4J2-2767" dev="rgoers" type="fix">
        Warn if pattern is missing on Routes element. Use default route.
      </action>
      <action issue="LOG4J2-2415" dev="ckozak" type="fix" due-to="Andrey Turbanov">
        Fix lock contention in the classloader using new versions of slf4j without EventData on slf4j logger creation.
      </action>
      <action issue="LOG4J2-2677" dev="ckozak" type="fix">
        Rollover handles parallel file deletion gracefully.
      </action>
      <action issue="LOG4J2-2744" dev="ckozak" type="fix">
        Remove unnecessary EventLogger references from log4j-slf4j18-impl due to removal from slf4j.
      </action>
      <action issue="LOG4J2-2745" dev="ckozak" type="update">
        Update log4j-slf4j18-impl slf4j version to 1.8.0-beta4 from 1.8.0-alpha2.
      </action>
      <action issue="LOG4J2-2747" dev="ckozak" type="fix">
        Fix a memory leak using fully asynchronous logging when the queue is full using the 'discard' asynchronous queue full strategy.
      </action>
      <action issue="LOG4J2-2739" dev="ckozak" type="fix">
        Fix erroneous log4j-jul recursive logger detection resulting in some no-op JUL loggers and 'WARN Recursive call to getLogger' being reported by the status logger.
      </action>
      <action issue="LOG4J2-2748" dev="ckozak" type="add">
        Implement ISO8601_PERIOD_MICROS fixed date format matching ISO8601_PERIOD with support for microsecond precision.
      </action>
      <action issue="LOG4J2-2735" dev="ckozak" type="fix" due-to="Andy Wilkinson">
        PluginCache output is reproducible allowing the annotation processor to produce deterministic results.
      </action>
      <action issue="LOG4J2-2751" dev="ckozak" type="fix">
        Fix StackLocator.getCallerClass performance in cases where Reflection.getCallerClass is not accessible.
      </action>
      <action issue="LOG4J2-2752" dev="ckozak" type="fix">
        MutableLogEvent and RingBufferLogEvent avoid StringBuffer and parameter array allocation unless reusable messages are used.
      </action>
      <action issue="LOG4J2-2754" dev="ckozak" type="fix">
        LoaderUtil.getClassLoaders may discover additional loaders and no longer erroneously returns a result with a null element in some environments.
      </action>
      <action issue="LOG4J2-2762" dev="ggregory" type="fix" due-to="Gary Gregory">
        [JDBC] MS-SQL Server JDBC driver throws SQLServerException when inserting a null value for a VARBINARY column.
      </action>
      <action issue="LOG4J2-2770" dev="ggregory" type="fix" due-to="Bill Kuker">
        NullPointerException after reconfiguring via JMX.
      </action>
    </release>
    <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-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="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-2575" dev="rgoers" type="fix" due-to="Nathan Friess">
        CronExpression.getBeforeTime() would sometimes return incorrect result.
      </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-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-2603" 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-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="2018-MM-DD" 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-2446" dev="ggregory" type="add">
        Add a Base64 string lookup.
      </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-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>
      <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>
    </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.1.
      </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="update">
        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-xx-xx" 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-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>
      <action issue="LOG4J2-2264" dev="ggregory" type="update">
        Update JAnsi from 1.16 to 1.17.
      </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.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>
