Looks like this lost itself outside the list. Anyways, I've updated the
template to generate markdown which makes a nice compromise between HTML
and plain text. The output on GitHub is copyable into an email, for
instance.

On 27 January 2017 at 19:33, Matt Sicker <mattsic...@apache.org> wrote:

> It's just a velocity template:
>
> https://github.com/apache/logging-log4j2/blob/master/
> src/changes/announcement.vm
>
> Shouldn't be too hard to adapt to HTML.
>
> On 27 January 2017 at 16:53, Gary Gregory <ggreg...@rocketsoftware.com>
> wrote:
>
>> We need a gadget that generates this in HTML. That would make the blog
>> and emails like this easier to digest. I wonder if there is a maven
>> thingy...
>>
>> Gary
>>
>> ------------------------------
>> *From:* Matt Sicker <mattsic...@apache.org>
>> *Sent:* Friday, January 27, 2017 8:19:48 AM
>> *To:* annou...@apache.org
>> *Subject:* [ANN] Log4j 2.8 released
>>
>>
>> The Apache Log4j 2 team is pleased to announce the Log4j 2.8 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 several bugfixes and new features. The new features 
>> include the ability
>> to have the RollingFileAppender log directly to the archive files. More 
>> details on the new features and
>> fixes are itemized below.
>>
>> Note that subsequent to the 2.6 release a minor source incompatibility was 
>> found due to the
>> addition of new methods to the Logger interface. If you have code that does:
>>
>> logger.error(null, “This is the log message”, throwable);
>>
>> or similar with any log level you will get a compiler error saying the 
>> reference is ambiguous.
>> To correct this either do:
>>
>> logger.error(“This is the log message”, throwable);
>>
>> or
>>
>> logger.error((Marker) null, “This is the log message”, throwable);
>>
>> The Log4j 2.8 API, as well as many core components, maintains binary 
>> compatibility with previous releases.
>>
>> GA Release 2.8
>>
>> Changes in this version include:
>>
>> New features:
>> o LOG4J2-1032:  Make DefaultRolloverStrategy more efficent when renaming 
>> files. Add nomax option to the fileIndex attribute.
>> o LOG4J2-1101:  RollingFileAppender now supports omitting the file name and 
>> writing directly to the archive files.
>> o LOG4J2-1243:  Allow default value in property to be a Lookup.
>> o LOG4J2-1787:  Document how to exclude transitive conflicting dependencies 
>> in Maven and Gradle.
>> o LOG4J2-1773:  Add StatusLoggerRule to allow unit tests to set a status 
>> level.
>> o LOG4J2-424:  Add non-string data type support to JdbcAppender via new 
>> ColumnMapping plugin.
>> o LOG4J2-1771:  Add a Builder to ColumnConfig and deprecate 
>> ColumnConfig.createColumnConfig().
>> o LOG4J2-1770:  Add a Builder to JdbcAppender and deprecate 
>> JdbcAppender.createAppender().
>> o LOG4J2-1764:  Use MethodHandle in ContextDataFactory cached constructor.
>> o LOG4J2-1730:  Add Apache Cassandra appender and ColumnMapping plugin.
>> o LOG4J2-1759:  Add TypeConverter for java.util.UUID.
>> o LOG4J2-1758:  Add TypeConverter for java.nio.file.Path.
>> o LOG4J2-1755:  Add TypeConverter and constraint validators for 
>> java.net.InetAddress and port numbers.
>> o LOG4J2-969:  Refactor SyslogAppender so that Layout is a Plugin element.
>> o LOG4J2-1660:  Added public method ThreadContext::getThreadContextMap; 
>> removed class ThreadContextAccess.
>> o LOG4J2-1379:  Add documentation regarding YAML configuration format.
>> o LOG4J2-1718:  Introduce marker interface AsynchronouslyFormattable.
>> o LOG4J2-1681:  Introduce interfaces IndexedStringMap and 
>> IndexedReadOnlyStringMap, supporting garbage-free iteration over sorted map.
>> o LOG4J2-1695:  Add a Builder to ScriptPatternSelector and deprecate 
>> ScriptPatternSelector.createSelector().
>> o LOG4J2-1696:  Add a Builder to MarkerPatternSelector and deprecate 
>> MarkerPatternSelector.createSelector().
>> o LOG4J2-1697:  Add a SerializerBuilder to PatternLayout and deprecate 
>> PatternLayout.createSerializer().
>> o LOG4J2-1701:  Add a Builder to RandomAccessFileAppender and deprecate 
>> RandomAccessFileAppender.createAppender().
>> o LOG4J2-1703:  Add a Builder to MemoryMappedFileAppender and deprecate 
>> MemoryMappedFileAppender.createAppender().
>> o LOG4J2-1704:  Add a Builder to RollingRandomAccessFileAppender and 
>> deprecate RollingRandomAccessFileAppender.createAppender().
>> o LOG4J2-1709:  Add a Builder to SyslogAppender and deprecate 
>> SyslogAppender.createAppender().
>> o LOG4J2-1707:  Allow TCP Socket Appender to set socket options.
>> o LOG4J2-1708:  Allow Secure Socket Appender to set socket options.
>> o LOG4J2-1737:  Add a Builder to SyslogLayout and deprecate 
>> SyslogLayout.createLayout(Facility, boolean, String, Charset).
>> o LOG4J2-1738:  Add a Builder to JsonLayout and deprecate 
>> org.apache.logging.log4j.core.layout.JsonLayout.createLayout(Configuration, 
>> boolean, boolean, boolean, boolean, boolean, boolean, String, String, 
>> Charset, boolean).
>> o LOG4J2-1739:  Add Builder to KafkaAppender and deprecate 
>> KafkaAppender.createAppender(Layout, Filter, String, boolean, String, 
>> Property[], Configuration).
>> o LOG4J2-1733:  Add SyncSend attribute to KafkaAppender (as in 
>> KafkaLog4jAppender). Thanks to Vincent Tieleman.
>>
>> Fixed Bugs:
>> o LOG4J2-1780:  Eliminate the use of the ExecutorServices in the 
>> LoggerContext.
>> o LOG4J2-1786:  ConfigurationScheduler now preserves interrupt flag during 
>> stop.
>> o LOG4J2-1779:  Fixed bug where AsyncLogger did not resolve configuration 
>> properties.
>> o LOG4J2-1769:  Fixed concurrency issue affecting all layouts except 
>> PatternLayout and GelfLayout, which caused scrambled output and exceptions 
>> when logging synchronously from multiple threads. Thanks to Brandon Goodin.
>> o LOG4J2-1724:  Using variables in GelfLayout's additional fields at 
>> runtime. Thanks to Alexander Krasnostavsky.
>> o LOG4J2-1762:  Add Builder to GelfLayout.
>> o LOG4J2-1649:  Insure the ConfigurationScheduler shuts down without 
>> blocking. Thanks to Georg Friedrich.
>> o LOG4J2-1653:  CronTriggeringPolicy would use the wrong date/time when 
>> rolling over and create multiple triggering policies on reconfiguration. 
>> Thanks to Georg Friedrich.
>> o LOG4J2-1748:  Do not use non-daemon thread pool for rollover tasks.
>> o LOG4J2-1628:  Fixed file locking regression in FileAppender introduced in 
>> 2.6.
>> o LOG4J2-1744:  The custom logger Generate tool no longer requires the 
>> log4j-api module on the classpath.
>> o LOG4J2-1731:  SslSocketManager now respects connectTimeoutMillis. Thanks 
>> to Chris Ribble.
>> o LOG4J2-1682:  Logger using LocalizedMessageFactory prints key instead of 
>> message. Thanks to Markus Waidhofer.
>> o LOG4J2-1720:  Make GelfLayout independent of Jackson.
>> o LOG4J2-1719:  Fixed race condition in ObjectMessage and SimpleMessage, 
>> ensuring that the log message contains the value the object has during the 
>> logging call.
>> o LOG4J2-1688:  Fixed bug where elements of a log message parameter array 
>> were nulled out in garbage-free mode.
>> o LOG4J2-1692:  Add putAll() method to CloseableThreadContext. Thanks to 
>> Greg Thomas.
>> o LOG4J2-1689:  Add CleanableThreadContextMap interface supporting method 
>> removeAll(Iterable<String>).
>> o LOG4J2-1685:  Option 'disableAnsi' in PatternLayout to unconditionally 
>> disable ANSI escape codes. Thanks to Raman Gupta.
>> o LOG4J2-1706:  Make TimeFilter usable as global filter and as logger filter.
>> o LOG4J2-1722:  (GC) Avoid allocating temporary objects in 
>> VariablesNotEmptyReplacementConverter.
>> o LOG4J2-1717:  (GC) Avoid allocating temporary objects in 
>> EncodingPatternConverter.
>> o LOG4J2-1716:  (GC) Avoid allocating temporary objects in 
>> MapPatternConverter. (Note that constructing a MapMessage is not 
>> garbage-free.)
>> o LOG4J2-1683:  (GC) Avoid allocating temporary objects in MapMessage.
>> o LOG4J2-1715:  (GC) Avoid allocating temporary objects in 
>> NdcPatternConverter. (Note that use of the ThreadContext stack is not 
>> garbage-free.)
>> o LOG4J2-1714:  (GC) Avoid allocating temporary objects in 
>> AbstractStyleNameConverter.
>> o LOG4J2-1680:  (GC) Avoid allocating temporary objects in TimeFilter.
>> o LOG4J2-1679:  (GC) Avoid allocating temporary objects in 
>> StructuredDataFilter.
>> o LOG4J2-1678:  (GC) Avoid allocating temporary objects in 
>> ThreadContextMapFilter.
>> o LOG4J2-1677:  (GC) Avoid allocating temporary objects in MapFilter.
>> o LOG4J2-1674:  (GC) Avoid allocating temporary objects in ThresholdFilter.
>> o LOG4J2-1673:  (GC) Avoid allocating temporary objects in MarkerFilter.
>> o LOG4J2-1672:  (GC) Avoid allocating temporary objects in LevelRangeFilter.
>> o LOG4J2-1671:  (GC) Avoid allocating temporary objects in 
>> EqualsIgnoreCaseReplacementConverter.
>> o LOG4J2-1670:  (GC) Avoid allocating temporary objects in 
>> EqualsReplacementConverter.
>> o LOG4J2-1669:  (GC) Avoid allocating temporary objects in 
>> MaxLengthConverter.
>> o LOG4J2-1668:  (GC) Avoid allocating temporary objects in 
>> MarkerPatternConverter.
>> o LOG4J2-1667:  (GC) Avoid allocating temporary objects in 
>> SequenceNumberPatternConverter.
>> o LOG4J2-1666:  (GC) Avoid allocating temporary objects in 
>> RelativeTimePatternConverter.
>> o LOG4J2-1665:  (GC) Avoid allocating temporary objects in 
>> IntegerPatternConverter.
>> o LOG4J2-1637:  Fixed problems when used in OSGi containers 
>> (IllegalAccessError, NoClassDefFoundError).
>> o LOG4J2-1226:  Improve LogEvent serialization to handle non-serializable 
>> Messages and deserializing when required classes are missing.
>> o LOG4J2-1663:  Ensure SortedArrayStringMap can be serialized and 
>> deserialized without errors regardless of content.
>> o LOG4J2-1658:  Prevent NPE in 
>> ThreadContextMapFactory::createThreadContextMap when initializing Log4j with 
>> Configurator::initialize and the BasicContextSelector is used.
>> o LOG4J2-1645:  Immutable empty StringMap.
>> o LOG4J2-1623:  Configurable JVM shutdown hook timeout.
>> o LOG4J2-1712:  Pick up bug fixes from Apache Commons Lang's 
>> org.apache.commons.lang3.time package.
>> o LOG4J2-1636:  Console Appender does not pick up Oracle Java 8's 
>> sun.stdout.encoding and sun.stderr.encoding. Thanks to Eldar Gabdullin.
>> o LOG4J2-1639:  Fix MemoryMappedFileAppender.createAppender() Javadoc for 
>> immediateFlush. Thanks to Sridhar Gopinath.
>> o LOG4J2-1676:  Some LogEvents may not carry a Throwable (Use 
>> Message.getThrowable() in log(Message) methods.) Thanks to Joern Huxhorn.
>> o LOG4J2-1723:  Unwanted transitive dependency on geronimo-jms_1.1_spec 
>> causes OSGi tests to fail. Thanks to Ludovic HOCHET.
>> o LOG4J2-1664:  Improve OSGi unit tests. Thanks to Ludovic HOCHET.
>> o LOG4J2-1687:  NPE in ThrowableProxy when resolving stack in Java EE/OSGi 
>> environment. Thanks to Robert Christiansen.
>> o LOG4J2-1642:  DefaultShutdownCallbackRegistry can throw a 
>> NoClassDefFoundError. Thanks to Johno Crawford.
>> o LOG4J2-1474:  CronTriggeringPolicy raise exception and fail to rollover 
>> log file when evaluateOnStartup is true. Thanks to yin mingjun, Neon.
>> o LOG4J2-1734:  SslSocketManagerFactory might leak Sockets when certain 
>> startup errors occur.
>> o LOG4J2-1736:  TcpSocketManagerFactory might leak Sockets when certain 
>> startup errors occur.
>> o LOG4J2-1740:  Add CronTriggeringPolicy programmatically leads to NPE.
>> o LOG4J2-1743:  CompositeConfiguration does not add filters to appenderRefs. 
>> Thanks to Toby Shepheard.
>> o LOG4J2-1756:  Adds xmlns in schema and some other tags. Thanks to 
>> shubhankar1100.
>>
>> Changes:
>> o LOG4J2-1781:  Update Conversant Disruptor from 1.2.7 to 1.2.10
>> o LOG4J2-1774:  Replace MockEJB dependency in unit tests with Spring Test 
>> and Mockito.
>> o LOG4J2-1644:  Inefficient locking in AbstractLoggerAdapter. Thanks to Tim 
>> Gokcen, Pavel Sivolobtchik.
>> o LOG4J2-1641:  Update JeroMQ from 0.3.5 to 0.3.6.
>> o LOG4J2-1647:  Update Commons Lang from 3.4 to 3.5.
>> o LOG4J2-1646:  Migrate to Mockito 2.x in unit tests.
>> o LOG4J2-1655:  Update Jackson from 2.8.3 to 2.8.4.
>> o LOG4J2-1735:  Update Jackson from 2.8.4 to 2.8.5.
>> o LOG4J2-1656:  Update Apache Flume from 1.6.0 to 1.7.0.
>> o LOG4J2-1698:  Update LMAX Disruptor from 3.3.5 to 3.3.6.
>> o LOG4J2-1700:  Update Jansi from 1.13 to 1.14.
>> o LOG4J2-1750:  Update Kafka from 0.10.0.1 to 0.10.1.1.
>> o LOG4J2-1751:  Update liquibase-core from 3.5.1 to 3.5.3.
>> o LOG4J2-1302:  The log4j-slf4j-impl module now declares a runtime 
>> dependency on log4j-core. While not technically required, this makes the 
>> log4j-slf4j-impl module behave similarly to slf4j-log4j12, and facilitates 
>> migration to Log4j 2.
>>
>>
>> Apache Log4j 2.8 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/
>>
>> ================================
>> Rocket Software, Inc. and subsidiaries ■ 77 Fourth Avenue, Waltham MA
>> 02451 ■ +1 877.328.2932 <(877)%20328-2932> ■ +1 781.577.4321
>> <(781)%20577-4321>
>> Unsubscribe from Marketing Messages/Manage Your Subscription Preferences
>> - http://www.rocketsoftware.com/manage-your-email-preferences
>> Privacy Policy - http://www.rocketsoftware.com/
>> company/legal/privacy-policy
>> ================================
>>
>> This communication and any attachments may contain confidential
>> information of Rocket Software, Inc. All unauthorized use, disclosure or
>> distribution is prohibited. If you are not the intended recipient, please
>> notify Rocket Software immediately and destroy all copies of this
>> communication. Thank you.
>>
>
>

Reply via email to