Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 118F3200C06 for ; Fri, 27 Jan 2017 19:35:49 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 10287160B5B; Fri, 27 Jan 2017 18:35:49 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B566B160B40 for ; Fri, 27 Jan 2017 19:35:47 +0100 (CET) Received: (qmail 95671 invoked by uid 500); 27 Jan 2017 18:35:23 -0000 Mailing-List: contact announce-help@apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list announce@apache.org Delivered-To: moderator for announce@apache.org Received: (qmail 50354 invoked by uid 99); 27 Jan 2017 16:19:50 -0000 X-Gm-Message-State: AIkVDXJC4B6rES+YMWXJInHWPX6hmSO1pPl6tB3DDIEamu5Og2Z6PuXRNQBdu8AgfWjB+PRprgpqzVJyahd2YQ== X-Received: by 10.223.171.22 with SMTP id q22mr9019910wrc.70.1485533988773; Fri, 27 Jan 2017 08:19:48 -0800 (PST) MIME-Version: 1.0 From: Matt Sicker Date: Fri, 27 Jan 2017 10:19:48 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: [ANN] Log4j 2.8 released To: announce@apache.org Content-Type: multipart/alternative; boundary=94eb2c1b57c0b3ed7a054715d5ba archived-at: Fri, 27 Jan 2017 18:35:49 -0000 --94eb2c1b57c0b3ed7a054715d5ba Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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, =E2=80=9CThis is the log message=E2=80=9D, 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(=E2=80=9CThis is the log message=E2=80=9D, throwable); or logger.error((Marker) null, =E2=80=9CThis is the log message=E2=80=9D, thro= wable); 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 le= vel. 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 LoggerCont= ext. 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). 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 filte= r. 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 MaxLengthConvert= er. 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/ --94eb2c1b57c0b3ed7a054715d5ba Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
The Apache Log4=
j 2 team is pleased to announce the Log4j 2.8 release!

Apache Log4j is a well known framework for logging application behavior. Lo=
g4j 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 a=
nd 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 i=
nclude the ability
to have the RollingFileAppender log directly to the archive files. More det=
ails 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, =E2=80=9CThis is the log message=E2=80=9D, throwable);

or similar with any log level you will get a compiler error saying the refe=
rence is ambiguous.
To correct this either do:

logger.error(=E2=80=9CThis is the log message=E2=80=9D, throwable);

or

logger.error((Marker) null, =E2=80=9CThis is the log message=E2=80=9D, thro=
wable);

The Log4j 2.8 API, as well as many core components, maintains binary compat=
ibility with previous releases.

GA Release 2.8

Changes in this version include:

New features:
o LOG4J2-1032:  Make DefaultRolloverStrategy more efficent when renaming fi=
les. Add nomax option to the fileIndex attribute.=20
o LOG4J2-1101:  RollingFileAppender now supports omitting the file name and=
 writing directly to the archive files.=20
o LOG4J2-1243:  Allow default value in property to be a Lookup.=20
o LOG4J2-1787:  Document how to exclude transitive conflicting dependencies=
 in Maven and Gradle.=20
o LOG4J2-1773:  Add StatusLoggerRule to allow unit tests to set a status le=
vel.=20
o LOG4J2-424:  Add non-string data type support to JdbcAppender via new Col=
umnMapping plugin.=20
o LOG4J2-1771:  Add a Builder to ColumnConfig and deprecate ColumnConfig.createColumnConfig().=20
o LOG4J2-1770:  Add a Builder to JdbcAppender and deprecate JdbcAppender.cr=
eateAppender().=20
o LOG4J2-1764:  Use MethodHandle in ContextDataFactory cached constructor.=
=20
o LOG4J2-1730:  Add Apache Cassandra appender and ColumnMapping plugin.=20
o LOG4J2-1759:  Add TypeConverter for java.util.UUID.=20
o LOG4J2-1758:  Add TypeConverter for java.nio.file.Path.=20
o LOG4J2-1755:  Add TypeConverter and constraint validators for java.net.In=
etAddress and port numbers.=20
o LOG4J2-969:  Refactor SyslogAppender so that Layout is a Plugin element.=
=20
o LOG4J2-1660:  Added public method ThreadContext::getThreadContextMap=
; removed class ThreadContextAccess.=20
o LOG4J2-1379:  Add documentation regarding YAML configuration format.=20
o LOG4J2-1718:  Introduce marker interface AsynchronouslyFormattable.=20
o LOG4J2-1681:  Introduce interfaces IndexedStringMap and IndexedReadOnlySt=
ringMap, supporting garbage-free iteration over sorted map.=20
o LOG4J2-1695:  Add a Builder to ScriptPatternSelector and deprecate Script=
PatternSelector.createSelector().=20
o LOG4J2-1696:  Add a Builder to MarkerPatternSelector and deprecate Marker=
PatternSelector.createSelector().=20
o LOG4J2-1697:  Add a SerializerBuilder to PatternLayout and deprecate Patt=
ernLayout.createSerializer().=20
o LOG4J2-1701:  Add a Builder to RandomAccessFileAppender and deprecate Ran=
domAccessFileAppender.createAppender().=20
o LOG4J2-1703:  Add a Builder to MemoryMappedFileAppender and deprecate Mem=
oryMappedFileAppender.createAppender().=20
o LOG4J2-1704:  Add a Builder to RollingRandomAccessFileAppender and d=
eprecate RollingRandomAccessFileAppender.createAppender().=20
o LOG4J2-1709:  Add a Builder to SyslogAppender and deprecate SyslogAppende=
r.createAppender().=20
o LOG4J2-1707:  Allow TCP Socket Appender to set socket options.=20
o LOG4J2-1708:  Allow Secure Socket Appender to set socket options.=20
o LOG4J2-1737:  Add a Builder to SyslogLayout and deprecate SyslogLayout.cr=
eateLayout(Facility, boolean, String, Charset).=20
o LOG4J2-1738:  Add a Builder to JsonLayout and deprecate org.apache.loggin=
g.log4j.core.layout.JsonLayout.createLayout(Configuration, boolea=
n, boolean, boolean, boolean, boolean, boolean, String, String, Charset, bo=
olean).=20
o LOG4J2-1739:  Add Builder to KafkaAppender and deprecate KafkaAppender.cr=
eateAppender(Layout, Filter, String, boolean, String, Property[], Conf=
iguration).=20
o LOG4J2-1733:  Add SyncSend attribute to KafkaAppender (as in KafkaLog4jAp=
pender). Thanks to Vincent Tieleman.=20

Fixed Bugs:
o LOG4J2-1780:  Eliminate the use of the ExecutorServices in the LoggerCont=
ext.=20
o LOG4J2-1786:  ConfigurationScheduler now preserves interrupt flag during =
stop.=20
o LOG4J2-1779:  Fixed bug where AsyncLogger did not resolve configuration p=
roperties.=20
o LOG4J2-1769:  Fixed concurrency issue affecting all layouts except Patter=
nLayout and GelfLayout, which caused scrambled output and exceptions when l=
ogging synchronously from multiple threads. Thanks to Brandon Goodin.=20
o LOG4J2-1724:  Using variables in GelfLayout's additional fields at ru=
ntime. Thanks to Alexander Krasnostavsky.=20
o LOG4J2-1762:  Add Builder to GelfLayout.=20
o LOG4J2-1649:  Insure the ConfigurationScheduler shuts down without blocki=
ng. Thanks to Georg Friedrich.=20
o LOG4J2-1653:  CronTriggeringPolicy would use the wrong date/time when rol=
ling over and create multiple triggering policies on reconfiguration. Thank=
s to Georg Friedrich.=20
o LOG4J2-1748:  Do not use non-daemon thread pool for rollover tasks.=20
o LOG4J2-1628:  Fixed file locking regression in FileAppender introduced in=
 2.6.=20
o LOG4J2-1744:  The custom logger Generate tool no longer requires the log4=
j-api module on the classpath.=20
o LOG4J2-1731:  SslSocketManager now respects connectTimeoutMillis. Thanks =
to Chris Ribble.=20
o LOG4J2-1682:  Logger using LocalizedMessageFactory prints key instead of =
message. Thanks to Markus Waidhofer.=20
o LOG4J2-1720:  Make GelfLayout independent of Jackson.=20
o LOG4J2-1719:  Fixed race condition in ObjectMessage and SimpleMessage, en=
suring that the log message contains the value the object has during the lo=
gging call.=20
o LOG4J2-1688:  Fixed bug where elements of a log message parameter array w=
ere nulled out in garbage-free mode.=20
o LOG4J2-1692:  Add putAll() method to CloseableThreadContext. Thanks to Gr=
eg Thomas.=20
o LOG4J2-1689:  Add CleanableThreadContextMap interface supporting method r=
emoveAll(Iterable<String>).=20
o LOG4J2-1685:  Option 'disableAnsi' in PatternLayout to unconditio=
nally disable ANSI escape codes. Thanks to Raman Gupta.=20
o LOG4J2-1706:  Make TimeFilter usable as global filter and as logger filte=
r.=20
o LOG4J2-1722:  (GC) Avoid allocating temporary objects in VariablesNotEmpt=
yReplacementConverter.=20
o LOG4J2-1717:  (GC) Avoid allocating temporary objects in EncodingPatternC=
onverter.=20
o LOG4J2-1716:  (GC) Avoid allocating temporary objects in MapPatternConver=
ter. (Note that constructing a MapMessage is not garbage-free.)=20
o LOG4J2-1683:  (GC) Avoid allocating temporary objects in MapMessage.=20
o LOG4J2-1715:  (GC) Avoid allocating temporary objects in NdcPatternConver=
ter. (Note that use of the ThreadContext stack is not garbage-free.)=20
o LOG4J2-1714:  (GC) Avoid allocating temporary objects in AbstractStyleNam=
eConverter.=20
o LOG4J2-1680:  (GC) Avoid allocating temporary objects in TimeFilter.=20
o LOG4J2-1679:  (GC) Avoid allocating temporary objects in StructuredDataFi=
lter.=20
o LOG4J2-1678:  (GC) Avoid allocating temporary objects in ThreadContextMap=
Filter.=20
o LOG4J2-1677:  (GC) Avoid allocating temporary objects in MapFilter.=20
o LOG4J2-1674:  (GC) Avoid allocating temporary objects in ThresholdFilter.=
=20
o LOG4J2-1673:  (GC) Avoid allocating temporary objects in MarkerFilter.=20
o LOG4J2-1672:  (GC) Avoid allocating temporary objects in LevelRangeFilter=
.=20
o LOG4J2-1671:  (GC) Avoid allocating temporary objects in EqualsIgnoreCase=
ReplacementConverter.=20
o LOG4J2-1670:  (GC) Avoid allocating temporary objects in EqualsReplacemen=
tConverter.=20
o LOG4J2-1669:  (GC) Avoid allocating temporary objects in MaxLengthConvert=
er.=20
o LOG4J2-1668:  (GC) Avoid allocating temporary objects in MarkerPatternCon=
verter.=20
o LOG4J2-1667:  (GC) Avoid allocating temporary objects in SequenceNumberPa=
tternConverter.=20
o LOG4J2-1666:  (GC) Avoid allocating temporary objects in RelativeTimePatt=
ernConverter.=20
o LOG4J2-1665:  (GC) Avoid allocating temporary objects in IntegerPatternCo=
nverter.=20
o LOG4J2-1637:  Fixed problems when used in OSGi containers (IllegalAccessE=
rror, NoClassDefFoundError).=20
o LOG4J2-1226:  Improve LogEvent serialization to handle non-serializable M=
essages and deserializing when required classes are missing.=20
o LOG4J2-1663:  Ensure SortedArrayStringMap can be serialized and deseriali=
zed without errors regardless of content.=20
o LOG4J2-1658:  Prevent NPE in ThreadContextMapFactory::createThreadCo=
ntextMap when initializing Log4j with Configurator::initialize and the Basi=
cContextSelector is used.=20
o LOG4J2-1645:  Immutable empty StringMap.=20
o LOG4J2-1623:  Configurable JVM shutdown hook timeout.=20
o LOG4J2-1712:  Pick up bug fixes from Apache Commons Lang's org.apache=
.commons.lang3.time package.=20
o LOG4J2-1636:  Console Appender does not pick up Oracle Java 8's sun.s=
tdout.encoding and sun.stderr.encoding. Thanks to Eldar Gabdullin.=20
o LOG4J2-1639:  Fix MemoryMappedFileAppender.createAppender() Javadoc =
for immediateFlush. Thanks to Sridhar Gopinath.=20
o LOG4J2-1676:  Some LogEvents may not carry a Throwable (Use Message.getTh=
rowable() in log(Message) methods.) Thanks to Joern Huxhorn.=20
o LOG4J2-1723:  Unwanted transitive dependency on geronimo-jms_1.1_spec cau=
ses OSGi tests to fail. Thanks to Ludovic HOCHET.=20
o LOG4J2-1664:  Improve OSGi unit tests. Thanks to Ludovic HOCHET.=20
o LOG4J2-1687:  NPE in ThrowableProxy when resolving stack in Java EE/OSGi =
environment. Thanks to Robert Christiansen.=20
o LOG4J2-1642:  DefaultShutdownCallbackRegistry can throw a NoClassDef=
FoundError. Thanks to Johno Crawford.=20
o LOG4J2-1474:  CronTriggeringPolicy raise exception and fail to rollover l=
og file when evaluateOnStartup is true. Thanks to yin mingjun, Neon.=20
o LOG4J2-1734:  SslSocketManagerFactory might leak Sockets when certain sta=
rtup errors occur.=20
o LOG4J2-1736:  TcpSocketManagerFactory might leak Sockets when certain sta=
rtup errors occur.=20
o LOG4J2-1740:  Add CronTriggeringPolicy programmatically leads to NPE.=20
o LOG4J2-1743:  CompositeConfiguration does not add filters to appenderRefs=
. Thanks to Toby Shepheard.=20
o LOG4J2-1756:  Adds xmlns in schema and some other tags. Thanks to shubhan=
kar1100.=20

Changes:
o LOG4J2-1781:  Update Conversant Disruptor from 1.2.7 to 1.2.10=20
o LOG4J2-1774:  Replace MockEJB dependency in unit tests with Spring Test a=
nd Mockito.=20
o LOG4J2-1644:  Inefficient locking in AbstractLoggerAdapter. Thanks to Tim=
 Gokcen, Pavel Sivolobtchik.=20
o LOG4J2-1641:  Update JeroMQ from 0.3.5 to 0.3.6.=20
o LOG4J2-1647:  Update Commons Lang from 3.4 to 3.5.=20
o LOG4J2-1646:  Migrate to Mockito 2.x in unit tests.=20
o LOG4J2-1655:  Update Jackson from 2.8.3 to 2.8.4.=20
o LOG4J2-1735:  Update Jackson from 2.8.4 to 2.8.5.=20
o LOG4J2-1656:  Update Apache Flume from 1.6.0 to 1.7.0.=20
o LOG4J2-1698:  Update LMAX Disruptor from 3.3.5 to 3.3.6.=20
o LOG4J2-1700:  Update Jansi from 1.13 to 1.14.=20
o LOG4J2-1750:  Update Kafka from 0.10.0.1 to 0.10.1.1.=20
o LOG4J2-1751:  Update liquibase-core from 3.5.1 to 3.5.3.=20
o LOG4J2-1302:  The log4j-slf4j-impl module now declares a runtime dependen=
cy on log4j-core. While not technically required, this makes the log4j-slf4=
j-impl module behave similarly to slf4j-log4j12, and facilitates migration =
to Log4j 2.=20


Apache Log4j 2.8 requires a minimum of Java 7 to build and run. Log4j 2.3 w=
as the
last release that supported Java 6.

Basic compatibility with Log4j 1.x is provided through the log4j-1.2-api co=
mponent, however it
does not implement some of the very implementation specific classes and met=
hods. The package
names and Maven groupId have been changed to org.apache.logging.log4j to av=
oid any conflicts
with log4j 1.x.

For complete information on Apache Log4j 2, including instructions on how t=
o submit bug
reports, patches, or suggestions for improvement, see the Apache Apache Log=
4j 2 website:

https:/=
/logging.apache.org/log4j/2.x/
--94eb2c1b57c0b3ed7a054715d5ba--