What you show here looks much like what the announcement in the dev list looks 
like. Notice the headings for the changes are ugly even in your email.

I sent it to the dev list as one email and the announce list as a second email 
since I have to use different email addresses. But the content was formatted 
exactly the same. I suspect the announce list does extra stuff.

Ralph

> On Aug 31, 2017, at 6:00 PM, Matt Sicker <boa...@gmail.com> wrote:
> 
> Example:
> 
> Apache Log4j 2.9.0 Release Notes
> 
> The Apache Log4j 2 team is pleased to announce the Log4j 2.9.0 release!
> 
> Apache Log4j is a well known framework for logging application behavior.
> Log4j 2 is an upgrade to Log4j that provides significant improvements over
> its predecessor, Log4j 1.x, and provides many other modern features such as
> support for Markers, lambda expressions for lazy logging, property
> substitution using Lookups, multiple patterns on a PatternLayout and
> asynchronous Loggers. Another notable Log4j 2 feature is the ability to be
> "garbage-free" (avoid allocating temporary objects) while logging. In
> addition, Log4j 2 will not lose events while reconfiguring.
> 
> This release contains the first support of Java 9 as well as bugfixes and
> minor enhancements. The Log4j API was modified to use
> java.util.ServiceLoader to locate Log4j implementations, although the
> former binding mechanism is still supported. The Log4j jar is now a
> multi-release jar to provide implementations of the Java 9 specific
> classes. Multi-release jars are not supported by the OSGi specification so
> OSGi modules will not be able to take advantage of these implementations
> but will not lose functionality as they will fall back to the
> implementations used in Java 7 and 8. More details on the new features and
> fixes are itemized below.
> 
> Note that subsequent to the 2.9 release, for security reasons,
> SerializedLayout is deprecated and no longer used as default in the Socket
> and JMS appenders. SerializedLayout can still be used as before, but has to
> be specified explicitly. To retain old behaviour, you have to change
> configuration like:
> 
> <Appenders>
>  <Socket name="socket" host="localhost" port="9500"/>
> </Appenders>
> 
> into:
> 
> <Appenders>
>  <Socket name="socket" host="localhost" port="9500">
>    <SerializedLayout/>
>  </Socket>
> </Appenders>
> 
> We do, however, discourage the use of SerializedLayout and recommend
> JsonLayout as a replacement:
> 
> <Appenders>
>  <Socket name="socket" host="localhost" port="9500">
>    <JsonLayout properties="true"/>
>  </Socket>
> </Appenders>
> 
> Note that subsequent to the 2.9 release, for security reasons, Log4j does
> not process DTD in XML files. If you used DTD for including snippets, you
> have to use XInclude or Composite Configuration instead.
> 
> The Log4j 2.9.0 API, as well as many core components, maintains binary
> compatibility with previous releases.
> <https://github.com/apache/logging-log4j2/blob/master/RELEASE-NOTES.md#ga-release-290>GA
> Release 2.9.0
> 
> Changes in this version include:
> <https://github.com/apache/logging-log4j2/blob/master/RELEASE-NOTES.md#new-features>New
> Features
> 
>   - LOG4J2-2008 <https://issues.apache.org/jira/browse/LOG4J2-2008>:
>   Support printing multiple StructuredData elements in RFC5424Layout.
>   - LOG4J2-1986 <https://issues.apache.org/jira/browse/LOG4J2-1986>:
>   Public API for parsing the output from JsonLayout/XmlLayout/YamlLayout into
>   a LogEvent.
>   - LOG4J2-1981 <https://issues.apache.org/jira/browse/LOG4J2-1981>:
>   JsonLayout, XmlLayout and YamlLayout support 0-byte termination of log
>   events.
>   - LOG4J2-1864 <https://issues.apache.org/jira/browse/LOG4J2-1864>:
>   Support capped collections for MongoDb appender. Thanks to Matthias
>   Kappeller.
>   - LOG4J2-1813 <https://issues.apache.org/jira/browse/LOG4J2-1813>:
>   Log4j2 will now print all internal logging to the console if system
>   property log4j2.debug is defined with any value (or no value).
>   - LOG4J2-1766 <https://issues.apache.org/jira/browse/LOG4J2-1766>:
>   Temporary compress directory during rollover (#88). Thanks to Pierrick
>   HYMBERT.
>   - LOG4J2-1814 <https://issues.apache.org/jira/browse/LOG4J2-1814>: Added
>   wrapper classes CustomLoggerGenerator and ExtendedLoggerGenerator to avoid
>   class name with a dollar ($) character which has special meaning in many
>   *nix command line environments.
>   - LOG4J2-1884 <https://issues.apache.org/jira/browse/LOG4J2-1884>: Added
>   process ID (pid) pattern converter.
>   - LOG4J2-1699 <https://issues.apache.org/jira/browse/LOG4J2-1699>:
>   Configurable Log File Permissions with PosixFilePermission. Thanks to
>   Demetrios Dimatos, Pierrick HYMBERT.
>   - LOG4J2-1945 <https://issues.apache.org/jira/browse/LOG4J2-1945>:
>   Generate source jas for all test jars.
>   - LOG4J2-1934 <https://issues.apache.org/jira/browse/LOG4J2-1934>: JMS
>   Appender does not know how to recover from a broken connection.
>   - LOG4J2-1955 <https://issues.apache.org/jira/browse/LOG4J2-1955>: JMS
>   Appender should be able connect to a broker (later) even it is not present
>   at configuration time.
>   - LOG4J2-1874 <https://issues.apache.org/jira/browse/LOG4J2-1874>: 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. Thanks to Roman Leventov.
>   - LOG4J2-1442 <https://issues.apache.org/jira/browse/LOG4J2-1442>:
>   Generic HTTP appender.
>   - LOG4J2-1935 <https://issues.apache.org/jira/browse/LOG4J2-1935>: Add
>   with(String, primitive) methods to
>   org.apache.logging.log4j.message.MapMessage.
>   - LOG4J2-1930 <https://issues.apache.org/jira/browse/LOG4J2-1930>: Add
>   forEach() methods to org.apache.logging.log4j.message.MapMessage.
>   - LOG4J2-1932 <https://issues.apache.org/jira/browse/LOG4J2-1932>: Add
>   containsKey() methods to org.apache.logging.log4j.message.MapMessage.
>   - LOG4J2-1854 <https://issues.apache.org/jira/browse/LOG4J2-1854>:
>   Support null byte delimiter in GelfLayout. Thanks to Xavier Jodoin.
>   - LOG4J2-1359 <https://issues.apache.org/jira/browse/LOG4J2-1359>: Add
>   support for Java 9 StackWalker.
>   - LOG4J2-1880 <https://issues.apache.org/jira/browse/LOG4J2-1880>: Warn
>   when a configuration file for an inactive ConfigurationFactory is found.
>   - LOG4J2-1855 <https://issues.apache.org/jira/browse/LOG4J2-1855>: Add
>   an optional random delay in TimeBasedTriggeringPolicy Thanks to Anthony
>   Maire.
>   - LOG4J2-1860 <https://issues.apache.org/jira/browse/LOG4J2-1860>:
>   Shortcut to add Property and KeyValuePair component in ConfigurationBuilder.
>   - LOG4J2-1294 <https://issues.apache.org/jira/browse/LOG4J2-1294>: The
>   JMS Appender should use a JMS MapMessage for a Log4j MapMessage.
> 
> <https://github.com/apache/logging-log4j2/blob/master/RELEASE-NOTES.md#fixed-bugs>Fixed
> Bugs
> 
>   - LOG4J2-1833 <https://issues.apache.org/jira/browse/LOG4J2-1833>:
>   Prevent NullPointerException when a file name is specified with the
>   DirectWriteRolloverStrategy.
>   - LOG4J2-2018 <https://issues.apache.org/jira/browse/LOG4J2-2018>: Fix
>   incorrect documentation for LoggerNameLevelRewritePolicy.
>   - LOG4J2-922 <https://issues.apache.org/jira/browse/LOG4J2-922>:
>   Parameter of mdcId in SyslogAppender has no default value. Thanks to
>   angus.aqlu, Paul Burrowes.
>   - LOG4J2-2001 <https://issues.apache.org/jira/browse/LOG4J2-2001>:
>   StyleConverter.newInstance argument validation is incorrect. Thanks to Paul
>   Burrowes.
>   - LOG4J2-1999 <https://issues.apache.org/jira/browse/LOG4J2-1999>:
>   HighlightConverter converts all unrecognized levels to DEBUG. Thanks to
>   Paul Burrowes.
>   - LOG4J2-2013 <https://issues.apache.org/jira/browse/LOG4J2-2013>:
>   SslSocketManager does not apply SSLContext on TCP reconnect. Thanks to
>   Taylor Patton, Gary Gregory.
>   - LOG4J2-2016 <https://issues.apache.org/jira/browse/LOG4J2-2016>: Mark
>   FileRenameAction as successful when using alternative ways to move files.
>   Thanks to Benjamin Jaton.
>   - LOG4J2-2012 <https://issues.apache.org/jira/browse/LOG4J2-2012>: No
>   compression when using a separate drive in Linux. Thanks to Benjamin Jaton.
>   - LOG4J2-1888 <https://issues.apache.org/jira/browse/LOG4J2-1888>: Log4j
>   throws a java.nio.charset.UnsupportedCharsetException: cp65001. Thanks to
>   Misagh Moayyed.
>   - LOG4J2-1990 <https://issues.apache.org/jira/browse/LOG4J2-1990>:
>   ConcurrentModificationException logging a parameter of type Map. Thanks to
>   Philippe Mouawad.
>   - LOG4J2-1311 <https://issues.apache.org/jira/browse/LOG4J2-1311>:
>   SocketAppender will lose several events after re-connection to server.
>   Thanks to Xibing Liang.
>   - LOG4J2-1977 <https://issues.apache.org/jira/browse/LOG4J2-1977>:
>   Consider the StringBuilder's capacity instead of content length when
>   trimming. Thanks to Jerry xnslong.
>   - LOG4J2-1971 <https://issues.apache.org/jira/browse/LOG4J2-1971>:
>   Register log4j-core as an OSGi service. Skip tests for LOG4J2-1766 on
>   MacOS. Use group "staff" for LOG4J2-1699 test on MacOS.
>   - LOG4J2-1994 <https://issues.apache.org/jira/browse/LOG4J2-1994>:
>   TcpSocketServer does not close accepted Sockets.
>   - LOG4J2-1987 <https://issues.apache.org/jira/browse/LOG4J2-1987>: Log4J
>   JUL Bridge and RMI Security Manager causes access denied
>   ("java.util.logging.LoggingPermission" "control") Thanks to Andreas Felder.
>   - LOG4J2-1982 <https://issues.apache.org/jira/browse/LOG4J2-1982>:
>   Log4j-config.xsd only allows one AppenderRef element for each Logger
>   element. Thanks to Christoph Lembeck.
>   - LOG4J2-1985 <https://issues.apache.org/jira/browse/LOG4J2-1985>: Fix
>   default buffer size to match documentation (from 8102 to 8192 a.k.a. 8KB.)
>   Thanks to Kenneth McFarland.
>   - LOG4J2-1912 <https://issues.apache.org/jira/browse/LOG4J2-1912>:
>   CompositeConfiguration logs warning "Unable to determine URI for
>   configuration." However, the reconfiguration is completed. Thanks to R Ri.
>   - LOG4J2-1964 <https://issues.apache.org/jira/browse/LOG4J2-1964>:
>   Dynamic reconfiguration does not work for filePattern of RollingFile.
>   Thanks to Pierrick HYMBERT.
>   - LOG4J2-1961 <https://issues.apache.org/jira/browse/LOG4J2-1961>:
>   Reconfigure breaks DirectWriteRolloverStrategy. Thanks to Christian Vent.
>   - LOG4J2-1943 <https://issues.apache.org/jira/browse/LOG4J2-1943>: The
>   eventPrefix attribute was being ignored in the RFC5424Layout.
>   - LOG4J2-1953 <https://issues.apache.org/jira/browse/LOG4J2-1953>:
>   JndiManager is not released when the JmsAppender builder catches an
>   exception trying to build itself.
>   - LOG4J2-1911 <https://issues.apache.org/jira/browse/LOG4J2-1911>:
>   Improve the documentation of the DynamicThresholdFilter.
>   - LOG4J2-1929 <https://issues.apache.org/jira/browse/LOG4J2-1929>:
>   EOFException with FormattedMessage. Thanks to Borys Sokolov.
>   - LOG4J2-1948 <https://issues.apache.org/jira/browse/LOG4J2-1948>: Trim
>   levels read from properties file to remove trailing spaces. Thanks to
>   Michael Lück.
>   - LOG4J2-1971 <https://issues.apache.org/jira/browse/LOG4J2-1971>:
>   ClassCastException: org.eclipse.osgi.internal.loader.SystemBundleLoader$1
>   cannot be cast to java.lang.ClassLoader. Thanks to liwenxian2017.
>   - LOG4J2-1876 <https://issues.apache.org/jira/browse/LOG4J2-1876>: More
>   reliable checking for runtime dependencies.
>   - LOG4J2-1867 <https://issues.apache.org/jira/browse/LOG4J2-1867>: Fix
>   configuration documentation.
>   - LOG4J2-1858 <https://issues.apache.org/jira/browse/LOG4J2-1858>:
>   Ensure the ThreadLocal StringBuilder in ParameterizedMessage won't hold
>   excessively much memory after logging a long message.
>   - LOG4J2-1885 <https://issues.apache.org/jira/browse/LOG4J2-1885>: Fix
>   documentation about default additivity value for loggers.
>   - LOG4J2-1920 <https://issues.apache.org/jira/browse/LOG4J2-1920>:
>   ScriptEngineManager is not available in Android and causes a
>   NoClassDefFoundError. Thanks to Ajitha.
>   - LOG4J2-1989 <https://issues.apache.org/jira/browse/LOG4J2-1989>:
>   Clarify Javadoc for AbstractTriggeringPolicy. Thanks to Kenneth McFarland.
>   - LOG4J2-1993 <https://issues.apache.org/jira/browse/LOG4J2-1993>: Fix
>   compiler warnings in LoggerConfigTest. Thanks to Kenneth McFarland.
> 
> <https://github.com/apache/logging-log4j2/blob/master/RELEASE-NOTES.md#changes>
> Changes
> 
>   - LOG4J2-1928 <https://issues.apache.org/jira/browse/LOG4J2-1928>: Add
>   support for DirectWriteRolloverStrategy to RollingRandomAcessFileAppender.
>   - LOG4J2-2022 <https://issues.apache.org/jira/browse/LOG4J2-2022>:
>   RFC5424Layout now prints the process id.
>   - LOG4J2-2020 <https://issues.apache.org/jira/browse/LOG4J2-2020>:
>   Remove default layout from KafkaAppender.
>   - LOG4J2-2023 <https://issues.apache.org/jira/browse/LOG4J2-2023>: Use a
>   class' canonical name instead of name to create its logger name.
>   - LOG4J2-2015 <https://issues.apache.org/jira/browse/LOG4J2-2015>: Allow
>   KeyStoreConfiguration and TrustStoreConfiguration to find files as
>   resources.
>   - LOG4J2-2011 <https://issues.apache.org/jira/browse/LOG4J2-2011>:
>   Replace JCommander command line parser with picocli to let users run Log4j2
>   utility applications without requiring an external dependency.
>   - LOG4J2-1984 <https://issues.apache.org/jira/browse/LOG4J2-1984>: Allow
>   maxLength of StructuredData to be specified by the user.
>   - LOG4J2-1071 <https://issues.apache.org/jira/browse/LOG4J2-1071>: Allow
>   for bufferSize=0 in SMTP appender. Thanks to Ben Ludkiewicz, Benjamin Jaton.
>   - LOG4J2-1261 <https://issues.apache.org/jira/browse/LOG4J2-1261>: Async
>   Loggers no longer use deprecated LMAX Disruptor APIs. (Disruptor-3.3.3 or
>   higher is now required.)
>   - LOG4J2-1908 <https://issues.apache.org/jira/browse/LOG4J2-1908>:
>   Improved error message when misconfigured with multiple incompatible
>   appenders targeting same file.
>   - LOG4J2-1954 <https://issues.apache.org/jira/browse/LOG4J2-1954>:
>   Configurations with multiple root loggers now fail loudly.
>   - LOG4J2-1958 <https://issues.apache.org/jira/browse/LOG4J2-1958>:
>   Deprecate SerializedLayout and remove it as default.
>   - LOG4J2-1959 <https://issues.apache.org/jira/browse/LOG4J2-1959>:
>   Disable DTD processing in XML configuration files.
>   - LOG4J2-1950 <https://issues.apache.org/jira/browse/LOG4J2-1950>: Fix
>   docker build with jdk9 requirements (#84). Thanks to Pierrick HYMBERT.
>   - LOG4J2-1801 <https://issues.apache.org/jira/browse/LOG4J2-1801>: Add
>   more detail to WARN "Ignoring log event" messages printed to the console
>   after log4j was shut down.
>   - LOG4J2-1926 <https://issues.apache.org/jira/browse/LOG4J2-1926>:
>   Facilitate log4j use in Android applications: remove dependency on RMI and
>   Management APIs from log4j-api.
>   - LOG4J2-1956 <https://issues.apache.org/jira/browse/LOG4J2-1956>: JMS
>   Appender broker password should be a char[], not a String.
>   - LOG4J2-1917 <https://issues.apache.org/jira/browse/LOG4J2-1917>:
>   Support using java.util.ServiceLoader to locate Log4j 2 API providers.
>   - LOG4J2-1966 <https://issues.apache.org/jira/browse/LOG4J2-1966>:
>   Include separator option of PatternLayout in manual (and other updates).
>   Thanks to M Sazzadul Hoque.
>   - LOG4J2-1851 <https://issues.apache.org/jira/browse/LOG4J2-1851>: Move
>   server components from log4j-core to new log4-server module.
>   - LOG4J2-1991 <https://issues.apache.org/jira/browse/LOG4J2-1991>:
>   Refactor SimpleMessage to be concise and clear (#100) Thanks to .
>   - LOG4J2-2017 <https://issues.apache.org/jira/browse/LOG4J2-2017>:
>   Update Jackson from 2.8.9 to 2.9.0.
>   - LOG4J2-1868 <https://issues.apache.org/jira/browse/LOG4J2-1868>:
>   Update ZeroMQ's JeroMQ from 0.3.6 to 0.4.0.
>   - LOG4J2-1960 <https://issues.apache.org/jira/browse/LOG4J2-1960>:
>   Update ZeroMQ's JeroMQ from 0.4.0 to 0.4.1.
>   - LOG4J2-1974 <https://issues.apache.org/jira/browse/LOG4J2-1974>:
>   Update ZeroMQ's JeroMQ from 0.4.1 to 0.4.2.
>   - LOG4J2-1869 <https://issues.apache.org/jira/browse/LOG4J2-1869>:
>   Update Kafka client from 0.10.1.1 to 0.10.2.0
>   - LOG4J2-1962 <https://issues.apache.org/jira/browse/LOG4J2-1962>:
>   Update Kafka client from 0.10.2.0 to 0.11.0.0
>   - LOG4J2-1872 <https://issues.apache.org/jira/browse/LOG4J2-1872>:
>   Update JavaMail from 1.5.5 to 1.5.6.
>   - LOG4J2-1879 <https://issues.apache.org/jira/browse/LOG4J2-1879>:
>   Update JAnsi from 1.14 to 1.15.
>   - LOG4J2-1877 <https://issues.apache.org/jira/browse/LOG4J2-1877>:
>   Missing documentation for Max index limit in DefaultRolloverStrategy.
>   Thanks to Chandra Tungathurthi.
>   - LOG4J2-1899 <https://issues.apache.org/jira/browse/LOG4J2-1899>: Add
>   missing getters to classes in package org.apache.logging.log4j.core.net.ssl.
>   - LOG4J2-1900 <https://issues.apache.org/jira/browse/LOG4J2-1900>:
>   Update JAnsi from 1.15 to 1.16.
>   - LOG4J2- <https://issues.apache.org/jira/browse/LOG4J2->: Update SLF4J
>   from 1.7.24 to 1.7.25.
>   - LOG4J2-1938 <https://issues.apache.org/jira/browse/LOG4J2-1938>:
>   Update Jackson from 2.8.7 to 2.8.9.
>   - LOG4J2-1970 <https://issues.apache.org/jira/browse/LOG4J2-1970>:
>   Update HdrHistogram from 2.1.8 to 2.1.9.
>   - LOG4J2-1975 <https://issues.apache.org/jira/browse/LOG4J2-1975>:
>   Update javax.persistence from 2.1.0 to 2.1.1.
>   - LOG4J2-1976 <https://issues.apache.org/jira/browse/LOG4J2-1976>:
>   Update org.osgi.core from 4.3.1 to 6.0.0.
> 
> ------------------------------
> 
> Apache Log4j 2.9.0 requires a minimum of Java 7 to build and run. Log4j 2.3
> was the last release that supported Java 6.
> 
> Basic compatibility with Log4j 1.x is provided through the log4j-1.2-api
> component, however it does not implement some of the very implementation
> specific classes and methods. The package names and Maven groupId have been
> changed to org.apache.logging.log4j to avoid any conflicts with log4j 1.x.
> 
> For complete information on Apache Log4j 2, including instructions on how
> to submit bug reports, patches, or suggestions for improvement, see the
> Apache Apache Log4j 2 website:
> 
> https://logging.apache.org/log4j/2.x/
> 
> On 31 August 2017 at 19:36, Ralph Goers <ralph.go...@dslextreme.com> wrote:
> 
>> Although it looks great at GitHub, I really dislike what copying the page
>> there makes the actual announcement look like. It doesn’t look too bad
>> below, except that the headings look odd, but when it goes to the
>> announcement list it looks terrible. http://mail-archives.us.
>> apache.org/mod_mbox/www-announce/201708.mbox/%3Ccd8b8bef-882e-fb69-6e89-
>> d72428416...@apache.org%3E <http://mail-archives.us.
>> apache.org/mod_mbox/www-announce/201708.mbox/%3Ccd8b8bef-882e-fb69-6e89-
>> d72428416...@apache.org%3E>.
>> 
>> Any ideas?
>> 
>> Ralph
>> 
>> 
>>> On Aug 30, 2017, at 5:26 PM, Ralph Goers <ralph.go...@dslextreme.com>
>> wrote:
>>> 
>>> The Apache Log4j 2 team is pleased to announce the Log4j 2.9.0 release!
>>> 
>>> Apache Log4j is a well known framework for logging application behavior.
>> Log4j 2 is an upgrade to Log4j that provides significant improvements over
>> its predecessor, Log4j 1.x, and provides many other modern features such as
>> support for Markers, lambda expressions for lazy logging, property
>> substitution using Lookups, multiple patterns on a PatternLayout and
>> asynchronous Loggers. Another notable Log4j 2 feature is the ability to be
>> "garbage-free" (avoid allocating temporary objects) while logging. In
>> addition, Log4j 2 will not lose events while reconfiguring.
>>> 
>>> This release contains the first support of Java 9 as well as bugfixes
>> and minor enhancements. The Log4j API was modified to use
>> java.util.ServiceLoader to locate Log4j implementations, although the
>> former binding mechanism is still supported. The Log4j jar is now a
>> multi-release jar to provide implementations of the Java 9 specific
>> classes. Multi-release jars are not supported by the OSGi specification so
>> OSGi modules will not be able to take advantage of these implementations
>> but will not lose functionality as they will fall back to the
>> implementations used in Java 7 and 8. More details on the new features and
>> fixes are itemized below.
>>> 
>>> Note that subsequent to the 2.9 release, for security reasons,
>> SerializedLayout is deprecated and no longer used as default in the Socket
>> and JMS appenders. SerializedLayout can still be used as before, but has to
>> be specified explicitly. To retain old behaviour, you have to change
>> configuration like:
>>> 
>>> <Appenders>
>>> <Socket name="socket" host="localhost" port="9500"/>
>>> </Appenders>
>>> into:
>>> 
>>> <Appenders>
>>> <Socket name="socket" host="localhost" port="9500">
>>>   <SerializedLayout/>
>>> </Socket>
>>> </Appenders>
>>> We do, however, discourage the use of SerializedLayout and recommend
>> JsonLayout as a replacement:
>>> 
>>> <Appenders>
>>> <Socket name="socket" host="localhost" port="9500">
>>>   <JsonLayout properties="true"/>
>>> </Socket>
>>> </Appenders>
>>> Note that subsequent to the 2.9 release, for security reasons, Log4j
>> does not process DTD in XML files. If you used DTD for including snippets,
>> you have to use XInclude or Composite Configuration instead.
>>> 
>>> The Log4j 2.9.0 API, as well as many core components, maintains binary
>> compatibility with previous releases.
>>> 
>>> <https://github.com/apache/logging-log4j2/blob/master/
>> RELEASE-NOTES.md#ga-release-290>GA Release 2.9.0
>>> 
>>> Changes in this version include:
>>> 
>>> <https://github.com/apache/logging-log4j2/blob/master/
>> RELEASE-NOTES.md#new-features>New Features
>>> 
>>> LOG4J2-2008 <https://issues.apache.org/jira/browse/LOG4J2-2008>:
>> Support printing multiple StructuredData elements in RFC5424Layout.
>>> LOG4J2-1986 <https://issues.apache.org/jira/browse/LOG4J2-1986>: Public
>> API for parsing the output from JsonLayout/XmlLayout/YamlLayout into a
>> LogEvent.
>>> LOG4J2-1981 <https://issues.apache.org/jira/browse/LOG4J2-1981>:
>> JsonLayout, XmlLayout and YamlLayout support 0-byte termination of log
>> events.
>>> LOG4J2-1864 <https://issues.apache.org/jira/browse/LOG4J2-1864>:
>> Support capped collections for MongoDb appender. Thanks to Matthias
>> Kappeller.
>>> LOG4J2-1813 <https://issues.apache.org/jira/browse/LOG4J2-1813>: Log4j2
>> will now print all internal logging to the console if system property
>> log4j2.debug is defined with any value (or no value).
>>> LOG4J2-1766 <https://issues.apache.org/jira/browse/LOG4J2-1766>:
>> Temporary compress directory during rollover (#88). Thanks to Pierrick
>> HYMBERT.
>>> LOG4J2-1814 <https://issues.apache.org/jira/browse/LOG4J2-1814>: Added
>> wrapper classes CustomLoggerGenerator and ExtendedLoggerGenerator to avoid
>> class name with a dollar ($) character which has special meaning in many
>> *nix command line environments.
>>> LOG4J2-1884 <https://issues.apache.org/jira/browse/LOG4J2-1884>: Added
>> process ID (pid) pattern converter.
>>> LOG4J2-1699 <https://issues.apache.org/jira/browse/LOG4J2-1699>:
>> Configurable Log File Permissions with PosixFilePermission. Thanks to
>> Demetrios Dimatos, Pierrick HYMBERT.
>>> LOG4J2-1945 <https://issues.apache.org/jira/browse/LOG4J2-1945>:
>> Generate source jas for all test jars.
>>> LOG4J2-1934 <https://issues.apache.org/jira/browse/LOG4J2-1934>: JMS
>> Appender does not know how to recover from a broken connection.
>>> LOG4J2-1955 <https://issues.apache.org/jira/browse/LOG4J2-1955>: JMS
>> Appender should be able connect to a broker (later) even it is not present
>> at configuration time.
>>> LOG4J2-1874 <https://issues.apache.org/jira/browse/LOG4J2-1874>: 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. Thanks to Roman Leventov.
>>> LOG4J2-1442 <https://issues.apache.org/jira/browse/LOG4J2-1442>:
>> Generic HTTP appender.
>>> LOG4J2-1935 <https://issues.apache.org/jira/browse/LOG4J2-1935>: Add
>> with(String, primitive) methods to org.apache.logging.log4j.
>> message.MapMessage.
>>> LOG4J2-1930 <https://issues.apache.org/jira/browse/LOG4J2-1930>: Add
>> forEach() methods to org.apache.logging.log4j.message.MapMessage.
>>> LOG4J2-1932 <https://issues.apache.org/jira/browse/LOG4J2-1932>: Add
>> containsKey() methods to org.apache.logging.log4j.message.MapMessage.
>>> LOG4J2-1854 <https://issues.apache.org/jira/browse/LOG4J2-1854>:
>> Support null byte delimiter in GelfLayout. Thanks to Xavier Jodoin.
>>> LOG4J2-1359 <https://issues.apache.org/jira/browse/LOG4J2-1359>: Add
>> support for Java 9 StackWalker.
>>> LOG4J2-1880 <https://issues.apache.org/jira/browse/LOG4J2-1880>: Warn
>> when a configuration file for an inactive ConfigurationFactory is found.
>>> LOG4J2-1855 <https://issues.apache.org/jira/browse/LOG4J2-1855>: Add an
>> optional random delay in TimeBasedTriggeringPolicy Thanks to Anthony Maire.
>>> LOG4J2-1860 <https://issues.apache.org/jira/browse/LOG4J2-1860>:
>> Shortcut to add Property and KeyValuePair component in ConfigurationBuilder.
>>> LOG4J2-1294 <https://issues.apache.org/jira/browse/LOG4J2-1294>: The
>> JMS Appender should use a JMS MapMessage for a Log4j MapMessage.
>>> <https://github.com/apache/logging-log4j2/blob/master/
>> RELEASE-NOTES.md#fixed-bugs>Fixed Bugs
>>> 
>>> LOG4J2-1833 <https://issues.apache.org/jira/browse/LOG4J2-1833>:
>> Prevent NullPointerException when a file name is specified with the
>> DirectWriteRolloverStrategy.
>>> LOG4J2-2018 <https://issues.apache.org/jira/browse/LOG4J2-2018>: Fix
>> incorrect documentation for LoggerNameLevelRewritePolicy.
>>> LOG4J2-922 <https://issues.apache.org/jira/browse/LOG4J2-922>:
>> Parameter of mdcId in SyslogAppender has no default value. Thanks to
>> angus.aqlu, Paul Burrowes.
>>> LOG4J2-2001 <https://issues.apache.org/jira/browse/LOG4J2-2001>:
>> StyleConverter.newInstance argument validation is incorrect. Thanks to Paul
>> Burrowes.
>>> LOG4J2-1999 <https://issues.apache.org/jira/browse/LOG4J2-1999>:
>> HighlightConverter converts all unrecognized levels to DEBUG. Thanks to
>> Paul Burrowes.
>>> LOG4J2-2013 <https://issues.apache.org/jira/browse/LOG4J2-2013>:
>> SslSocketManager does not apply SSLContext on TCP reconnect. Thanks to
>> Taylor Patton, Gary Gregory.
>>> LOG4J2-2016 <https://issues.apache.org/jira/browse/LOG4J2-2016>: Mark
>> FileRenameAction as successful when using alternative ways to move files.
>> Thanks to Benjamin Jaton.
>>> LOG4J2-2012 <https://issues.apache.org/jira/browse/LOG4J2-2012>: No
>> compression when using a separate drive in Linux. Thanks to Benjamin Jaton.
>>> LOG4J2-1888 <https://issues.apache.org/jira/browse/LOG4J2-1888>: Log4j
>> throws a java.nio.charset.UnsupportedCharsetException: cp65001. Thanks to
>> Misagh Moayyed.
>>> LOG4J2-1990 <https://issues.apache.org/jira/browse/LOG4J2-1990>:
>> ConcurrentModificationException logging a parameter of type Map. Thanks
>> to Philippe Mouawad.
>>> LOG4J2-1311 <https://issues.apache.org/jira/browse/LOG4J2-1311>:
>> SocketAppender will lose several events after re-connection to server.
>> Thanks to Xibing Liang.
>>> LOG4J2-1977 <https://issues.apache.org/jira/browse/LOG4J2-1977>:
>> Consider the StringBuilder's capacity instead of content length when
>> trimming. Thanks to Jerry xnslong.
>>> LOG4J2-1971 <https://issues.apache.org/jira/browse/LOG4J2-1971>:
>> Register log4j-core as an OSGi service. Skip tests for LOG4J2-1766 on
>> MacOS. Use group "staff" for LOG4J2-1699 test on MacOS.
>>> LOG4J2-1994 <https://issues.apache.org/jira/browse/LOG4J2-1994>:
>> TcpSocketServer does not close accepted Sockets.
>>> LOG4J2-1987 <https://issues.apache.org/jira/browse/LOG4J2-1987>: Log4J
>> JUL Bridge and RMI Security Manager causes access denied
>> ("java.util.logging.LoggingPermission" "control") Thanks to Andreas
>> Felder.
>>> LOG4J2-1982 <https://issues.apache.org/jira/browse/LOG4J2-1982>:
>> Log4j-config.xsd only allows one AppenderRef element for each Logger
>> element. Thanks to Christoph Lembeck.
>>> LOG4J2-1985 <https://issues.apache.org/jira/browse/LOG4J2-1985>: Fix
>> default buffer size to match documentation (from 8102 to 8192 a.k.a. 8KB.)
>> Thanks to Kenneth McFarland.
>>> LOG4J2-1912 <https://issues.apache.org/jira/browse/LOG4J2-1912>:
>> CompositeConfiguration logs warning "Unable to determine URI for
>> configuration." However, the reconfiguration is completed. Thanks to R Ri.
>>> LOG4J2-1964 <https://issues.apache.org/jira/browse/LOG4J2-1964>:
>> Dynamic reconfiguration does not work for filePattern of RollingFile.
>> Thanks to Pierrick HYMBERT.
>>> LOG4J2-1961 <https://issues.apache.org/jira/browse/LOG4J2-1961>:
>> Reconfigure breaks DirectWriteRolloverStrategy. Thanks to Christian Vent.
>>> LOG4J2-1943 <https://issues.apache.org/jira/browse/LOG4J2-1943>: The
>> eventPrefix attribute was being ignored in the RFC5424Layout.
>>> LOG4J2-1953 <https://issues.apache.org/jira/browse/LOG4J2-1953>:
>> JndiManager is not released when the JmsAppender builder catches an
>> exception trying to build itself.
>>> LOG4J2-1911 <https://issues.apache.org/jira/browse/LOG4J2-1911>:
>> Improve the documentation of the DynamicThresholdFilter.
>>> LOG4J2-1929 <https://issues.apache.org/jira/browse/LOG4J2-1929>:
>> EOFException with FormattedMessage. Thanks to Borys Sokolov.
>>> LOG4J2-1948 <https://issues.apache.org/jira/browse/LOG4J2-1948>: Trim
>> levels read from properties file to remove trailing spaces. Thanks to
>> Michael Lück.
>>> LOG4J2-1971 <https://issues.apache.org/jira/browse/LOG4J2-1971>:
>> ClassCastException: org.eclipse.osgi.internal.loader.SystemBundleLoader$1
>> cannot be cast to java.lang.ClassLoader. Thanks to liwenxian2017.
>>> LOG4J2-1876 <https://issues.apache.org/jira/browse/LOG4J2-1876>: More
>> reliable checking for runtime dependencies.
>>> LOG4J2-1867 <https://issues.apache.org/jira/browse/LOG4J2-1867>: Fix
>> configuration documentation.
>>> LOG4J2-1858 <https://issues.apache.org/jira/browse/LOG4J2-1858>: Ensure
>> the ThreadLocal StringBuilder in ParameterizedMessage won't hold
>> excessively much memory after logging a long message.
>>> LOG4J2-1885 <https://issues.apache.org/jira/browse/LOG4J2-1885>: Fix
>> documentation about default additivity value for loggers.
>>> LOG4J2-1920 <https://issues.apache.org/jira/browse/LOG4J2-1920>:
>> ScriptEngineManager is not available in Android and causes a
>> NoClassDefFoundError. Thanks to Ajitha.
>>> LOG4J2-1989 <https://issues.apache.org/jira/browse/LOG4J2-1989>:
>> Clarify Javadoc for AbstractTriggeringPolicy. Thanks to Kenneth McFarland.
>>> LOG4J2-1993 <https://issues.apache.org/jira/browse/LOG4J2-1993>: Fix
>> compiler warnings in LoggerConfigTest. Thanks to Kenneth McFarland.
>>> <https://github.com/apache/logging-log4j2/blob/master/
>> RELEASE-NOTES.md#changes>Changes
>>> 
>>> LOG4J2-1928 <https://issues.apache.org/jira/browse/LOG4J2-1928>: Add
>> support for DirectWriteRolloverStrategy to RollingRandomAcessFileAppender.
>>> LOG4J2-2022 <https://issues.apache.org/jira/browse/LOG4J2-2022>:
>> RFC5424Layout now prints the process id.
>>> LOG4J2-2020 <https://issues.apache.org/jira/browse/LOG4J2-2020>: Remove
>> default layout from KafkaAppender.
>>> LOG4J2-2023 <https://issues.apache.org/jira/browse/LOG4J2-2023>: Use a
>> class' canonical name instead of name to create its logger name.
>>> LOG4J2-2015 <https://issues.apache.org/jira/browse/LOG4J2-2015>: Allow
>> KeyStoreConfiguration and TrustStoreConfiguration to find files as
>> resources.
>>> LOG4J2-2011 <https://issues.apache.org/jira/browse/LOG4J2-2011>:
>> Replace JCommander command line parser with picocli to let users run Log4j2
>> utility applications without requiring an external dependency.
>>> LOG4J2-1984 <https://issues.apache.org/jira/browse/LOG4J2-1984>: Allow
>> maxLength of StructuredData to be specified by the user.
>>> LOG4J2-1071 <https://issues.apache.org/jira/browse/LOG4J2-1071>: Allow
>> for bufferSize=0 in SMTP appender. Thanks to Ben Ludkiewicz, Benjamin Jaton.
>>> LOG4J2-1261 <https://issues.apache.org/jira/browse/LOG4J2-1261>: Async
>> Loggers no longer use deprecated LMAX Disruptor APIs. (Disruptor-3.3.3 or
>> higher is now required.)
>>> LOG4J2-1908 <https://issues.apache.org/jira/browse/LOG4J2-1908>:
>> Improved error message when misconfigured with multiple incompatible
>> appenders targeting same file.
>>> LOG4J2-1954 <https://issues.apache.org/jira/browse/LOG4J2-1954>:
>> Configurations with multiple root loggers now fail loudly.
>>> LOG4J2-1958 <https://issues.apache.org/jira/browse/LOG4J2-1958>:
>> Deprecate SerializedLayout and remove it as default.
>>> LOG4J2-1959 <https://issues.apache.org/jira/browse/LOG4J2-1959>:
>> Disable DTD processing in XML configuration files.
>>> LOG4J2-1950 <https://issues.apache.org/jira/browse/LOG4J2-1950>: Fix
>> docker build with jdk9 requirements (#84). Thanks to Pierrick HYMBERT.
>>> LOG4J2-1801 <https://issues.apache.org/jira/browse/LOG4J2-1801>: Add
>> more detail to WARN "Ignoring log event" messages printed to the console
>> after log4j was shut down.
>>> LOG4J2-1926 <https://issues.apache.org/jira/browse/LOG4J2-1926>:
>> Facilitate log4j use in Android applications: remove dependency on RMI and
>> Management APIs from log4j-api.
>>> LOG4J2-1956 <https://issues.apache.org/jira/browse/LOG4J2-1956>: JMS
>> Appender broker password should be a char[], not a String.
>>> LOG4J2-1917 <https://issues.apache.org/jira/browse/LOG4J2-1917>:
>> Support using java.util.ServiceLoader to locate Log4j 2 API providers.
>>> LOG4J2-1966 <https://issues.apache.org/jira/browse/LOG4J2-1966>:
>> Include separator option of PatternLayout in manual (and other updates).
>> Thanks to M Sazzadul Hoque.
>>> LOG4J2-1851 <https://issues.apache.org/jira/browse/LOG4J2-1851>: Move
>> server components from log4j-core to new log4-server module.
>>> LOG4J2-1991 <https://issues.apache.org/jira/browse/LOG4J2-1991>:
>> Refactor SimpleMessage to be concise and clear (#100) Thanks to .
>>> LOG4J2-2017 <https://issues.apache.org/jira/browse/LOG4J2-2017>: Update
>> Jackson from 2.8.9 to 2.9.0.
>>> LOG4J2-1868 <https://issues.apache.org/jira/browse/LOG4J2-1868>: Update
>> ZeroMQ's JeroMQ from 0.3.6 to 0.4.0.
>>> LOG4J2-1960 <https://issues.apache.org/jira/browse/LOG4J2-1960>: Update
>> ZeroMQ's JeroMQ from 0.4.0 to 0.4.1.
>>> LOG4J2-1974 <https://issues.apache.org/jira/browse/LOG4J2-1974>: Update
>> ZeroMQ's JeroMQ from 0.4.1 to 0.4.2.
>>> LOG4J2-1869 <https://issues.apache.org/jira/browse/LOG4J2-1869>: Update
>> Kafka client from 0.10.1.1 to 0.10.2.0
>>> LOG4J2-1962 <https://issues.apache.org/jira/browse/LOG4J2-1962>: Update
>> Kafka client from 0.10.2.0 to 0.11.0.0
>>> LOG4J2-1872 <https://issues.apache.org/jira/browse/LOG4J2-1872>: Update
>> JavaMail from 1.5.5 to 1.5.6.
>>> LOG4J2-1879 <https://issues.apache.org/jira/browse/LOG4J2-1879>: Update
>> JAnsi from 1.14 to 1.15.
>>> LOG4J2-1877 <https://issues.apache.org/jira/browse/LOG4J2-1877>:
>> Missing documentation for Max index limit in DefaultRolloverStrategy.
>> Thanks to Chandra Tungathurthi.
>>> LOG4J2-1899 <https://issues.apache.org/jira/browse/LOG4J2-1899>: Add
>> missing getters to classes in package org.apache.logging.log4j.core.
>> net.ssl.
>>> LOG4J2-1900 <https://issues.apache.org/jira/browse/LOG4J2-1900>: Update
>> JAnsi from 1.15 to 1.16.
>>> LOG4J2- <https://issues.apache.org/jira/browse/LOG4J2->: Update SLF4J
>> from 1.7.24 to 1.7.25.
>>> LOG4J2-1938 <https://issues.apache.org/jira/browse/LOG4J2-1938>: Update
>> Jackson from 2.8.7 to 2.8.9.
>>> LOG4J2-1970 <https://issues.apache.org/jira/browse/LOG4J2-1970>: Update
>> HdrHistogram from 2.1.8 to 2.1.9.
>>> LOG4J2-1975 <https://issues.apache.org/jira/browse/LOG4J2-1975>: Update
>> javax.persistence from 2.1.0 to 2.1.1.
>>> LOG4J2-1976 <https://issues.apache.org/jira/browse/LOG4J2-1976>: Update
>> org.osgi.core from 4.3.1 to 6.0.0.
>>> Apache Log4j 2.9.0 requires a minimum of Java 7 to build and run. Log4j
>> 2.3 was the last release that supported Java 6.
>>> 
>>> Basic compatibility with Log4j 1.x is provided through the log4j-1.2-api
>> component, however it does not implement some of the very implementation
>> specific classes and methods. The package names and Maven groupId have been
>> changed to org.apache.logging.log4j to avoid any conflicts with log4j 1.x.
>>> 
>>> For complete information on Apache Log4j 2, including instructions on
>> how to submit bug reports, patches, or suggestions for improvement, see the
>> Apache Apache Log4j 2 website:
>>> 
>>> https://logging.apache.org/log4j/2.x/ <https://logging.apache.org/
>> log4j/2.x/>
>> 
>> 
> 
> 
> -- 
> Matt Sicker <boa...@gmail.com>



Reply via email to