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

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

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