<?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">
      <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.0" date="2019-MM-DD" 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>
