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

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

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<document>
  <properties>
    <title>Changes</title>
  </properties>
  <body>
    <release version="2.0-rc1" date="2014-MM-DD" 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">
        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">
        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>
    </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 intruction'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 compatibile 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>
