Re: [ANNOUNCEMENT] (Corrected) Apache Log4j 2.11.0 released
Remko Popma <[email protected]> Sat, 17 Mar 2018 02:57:23 +0000 (UTC)
| Newsgroups | gmane.text.xml.general,gmane.comp.jakarta.log4j.user,gmane.comp.java.wicket.devel |
|---|---|
| Message-ID | <490936056.2258524.1521255443422__15857.96864606$1521255578$gmane$org@mail.yahoo.com> |
------=_Part_2258523_76742860.1521255443419
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Blogged:=C2=A0Log4j 2.11 released : Apache Logging Services
|=20
|=20
| |=20
Log4j 2.11 released : Apache Logging Services
|
|
|
Please share on social media!
On Saturday, March 17, 2018, 9:49:22 AM GMT+9, Ralph Goers <ralph.goers=
@dslextreme.com> wrote: =20
=20
The Apache Log4j 2 team is pleased to announce the Log4j 2.11.0 release!
=20
Apache Log4j is a well known framework for logging application behavior. Lo=
g4j 2 is an upgrade to Log4j that provides significant improvements over it=
s predecessor, Log4j 1.x, and provides many other modern features such as s=
upport for Markers, lambda expressions for lazy logging, property substitut=
ion using Lookups, multiple patterns on a PatternLayout and asynchronous Lo=
ggers. Another notable Log4j 2 feature is the ability to be "garbage-free" =
(avoid allocating temporary objects) while logging. In addition, Log4j 2 wi=
ll not lose events while reconfiguring.
=20
This release contains new features, bugfixes and minor enhancements.
=20
As of Log4j 2.9.0, the Log4j API was modified to use java.util.ServiceLoade=
r to locate Log4j implementations, although the former binding mechanism is=
still supported. The Log4j API jar is now a multi-release jar to provide i=
mplementations of Java 9 specific classes. Multi-release jars are not suppo=
rted by the OSGi specification so OSGi modules will not be able to take adv=
antage of these implementations but will not lose functionality as they wil=
l fall back to the implementations used in Java 7 and 8. More details on th=
e new features and fixes are itemized below. Note that some tools are not c=
ompatible with multi-release jars and may fail trying to process class file=
s in the META-INF/versions/9 folder. Those errors should be reported to the=
tool vendor.
=20
Note that subsequent to the 2.9.0 release, for security reasons, Serialized=
Layout is deprecated and no longer used as default in the Socket and JMS ap=
penders. SerializedLayout can still be used as before, but has to be specif=
ied explicitly. To retain old behaviour, you have to change configuration l=
ike:
=20
<Appenders>
=C2=A0 <Socket name=3D"socket" host=3D"localhost" port=3D"9500"/>
</Appenders>
into:
=20
<Appenders>
=C2=A0 <Socket name=3D"socket" host=3D"localhost" port=3D"9500">
=C2=A0=C2=A0=C2=A0 <SerializedLayout/>
=C2=A0 </Socket>
</Appenders>
We do, however, discourage the use of SerializedLayout and recommend JsonLa=
yout as a replacement:
=20
<Appenders>
=C2=A0 <Socket name=3D"socket" host=3D"localhost" port=3D"9500">
=C2=A0=C2=A0=C2=A0 <JsonLayout properties=3D"true"/>
=C2=A0 </Socket>
</Appenders>
Note that the XML, JSON and YAML formats changed in the 2.11.0 release: the=
y no longer have the "timeMillis" attribute and instead have an "Instant" e=
lement with "epochSecond" and "nanoOfSecond" attributes.
=20
Note that subsequent to the 2.9.0 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.
=20
The Log4j 2.11.0 API, as well as many core components, maintains binary com=
patibility with previous releases with the following exceptions to Log4j Co=
re. Log4j 2.11.0 moves code from log4j-core to several new Maven modules. D=
ependencies to other jars that used to be optional in log4j-core are now re=
quired in the new modules. The code in these modules have been repackaged. =
These changes do not affect your configuration files.
=20
The new modules are:
=20
log4j-jdbc-dbc2
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Group ID: org.apache.logging.log4j
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Artifact ID: log4j-jdbc-dbc2
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Old package: org.apache.logging.log4j.core.app=
ender.db.jdbc
=C2=A0=C2=A0=C2=A0 =E2=80=A2 New package: org.apache.logging.log4j.jdbc.app=
ender
=20
log4j-jpa
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Group ID: org.apache.logging.log4j
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Artifact ID: log4j-jpa
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Old package 1: org.apache.logging.log4j.core.a=
ppender.db.jpa
=C2=A0=C2=A0=C2=A0 =E2=80=A2 New package 1: org.apache.logging.log4j.jpa.ap=
pender
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Old package 2: org.apache.logging.log4j.core.a=
ppender.db.jpa.converter
=C2=A0=C2=A0=C2=A0 =E2=80=A2 New package 2: org.apache.logging.log4j.jpa.co=
nverter
=20
log4j-mongodb2
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Group ID: org.apache.logging.log4j
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Artifact ID: log4j-mongodb2
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Old package: org.apache.logging.log4j.mongodb
=C2=A0=C2=A0=C2=A0 =E2=80=A2 New package: org.apache.logging.log4j.mongodb2
=20
log4j-mongodb3
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Group ID: org.apache.logging.log4j
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Artifact ID: log4j-mongodb3
=C2=A0=C2=A0=C2=A0 =E2=80=A2 Old package: org.apache.logging.log4j.mongodb
=C2=A0=C2=A0=C2=A0 =E2=80=A2 New package: org.apache.logging.log4j.mongodb3
=20
GA Release 2.11.0
=20
Changes in this version include:
=20
New Features
LOG4J2-2253: Add API to enable iterating over message parameters without cr=
eating temporary objects. Thanks to Carter Kozak.
LOG4J2-1883: Added support for precise (micro and nanosecond) timestamps wh=
en running on Java 9. A limited number of precise %d date formats are suppo=
rted with PatternLayout. POTENTIAL BREAKING CHANGE: The XML, JSON and YAML =
formats have changed: they no longer have the "timeMillis" attribute and in=
stead have an "Instant" element with "epochSecond" and "nanoOfSecond" attri=
butes. Thanks to Anthony Maire.
LOG4J2-2190: Output JSON object for ObjectMessage in JsonLayout. Thanks to =
Franz Wong.
LOG4J2-2191: Made log4j-core a multi-release ("multi-version") jar, added l=
og4j-core-java9 module.
LOG4J2-2143: Add missing converters to PatternLayout.
LOG4J2-2160: Add API org.apache.logging.log4j.core.lookup.Interpolator.getS=
trLookupMap().
LOG4J2-2179: The MongoDB Appender should use a keys and values for a Log4j =
MapMessage.
LOG4J2-2180: Add a MongoDbProvider builder for and deprecate org.apache.log=
ging.log4j.mongodb.MongoDbProvider.createNoSqlProvider().
LOG4J2-2181: The JDBC Appender should use keys and values from a Log4j MapM=
essage.
LOG4J2-2185: Add a simple JDBC DriverManager-based ConnectionSource that us=
es JDBC's DriverManager#getConnection(String, String, String).
LOG4J2-2186: Add a JDBC ConnectionSource that provides pooling through Apac=
he Commons DBCP 2.
LOG4J2-2187: Add a hook for a Connection Source for a JDBC Appender to rele=
ase its resources.
LOG4J2-2203: Add org.apache.logging.log4j.core.util.WatchManager#unwatch(Fi=
le).
LOG4J2-2206: Add method org.apache.logging.log4j.core.util.WatchManager.res=
et(File) and reset().
LOG4J2-2208: Add debug logging to org.apache.logging.log4j.mongodb.MongoDbC=
onnection.
Fixed Bugs
LOG4J2-2271: Move module-info.class to META-INF/versions/9 directory.
LOG4J2-2254: Incorrect automatics module name header was being included in =
manifests.
LOG4J2-2247: NullPointerException would occur when header was provided to a=
Layout on RollingRandingAccessFileAppender with DirectWriteRolloverStrateg=
y.
LOG4J2-2129: Log4j2 throws NoClassDefFoundError in Java 9 in java.util.Serv=
iceLoader. Thanks to Blazej Bucko.
LOG4J2-2158: Fixed bug where ThreadContext map was cleared, resulting in en=
tries being only available for one log event. Thanks to Bj=C3=B6rn Kautler.
LOG4J2-2002: Avoid null attribute values in DefaultConfigurationBuilder. Th=
anks to Paul Burrowes.
LOG4J2-2175: Fix typo in Property Substitution docs. Thanks to Behrang Saee=
dzadeh.
LOG4J2-2163: Allow SortedArrayStringMap to be filtered upon deserialization=
. Fix build error in Java 9 when compiling log4j-core test classes.
LOG4J2-2157: Don't create exit message in traceExit(R) when logging is disa=
bled. Thanks to Malte Skoruppa.
LOG4J2-2123: DefaultMergeStrategy did not merge filters on loggers correctl=
y. Thanks to Jacob Tolar.
LOG4J2-2126: Removed compile-time dependency on Java Management APIs from L=
og4J API module to improve compatibility with Android Platform which does n=
ot support JMX extensions. Thanks to Oleg Kalnichevski.
LOG4J2-2270: Strings::join, when called with [null] returns "null" instead =
of EMPTY. Thanks to Cyril Martin.
LOG4J2-2276: ConcurrentModificationException from org.apache.logging.log4j.=
status.StatusLogger.<clinit>(StatusLogger.java:71). Thanks to Sean Baxter.
LOG4J2-2274: Allow EnvironmentPropertySource to run with a SecurityManager =
that rejects environment variable access. Thanks to Sebastien Lannez.
LOG4J2-2279: Allow SystemPropertiesPropertySource to run with a SecurityMan=
ager that rejects system property access. Thanks to Gary Gregory.
Changes
LOG4J2-2273: Documentation fix in manual page for custom configurations. Th=
anks to Bruno P. Kinoshita.
LOG4J2-2252: Reusable LogEvents now pass the original format string to down=
stream components like layouts and filters. Thanks to Carter Kozak.
LOG4J2-2250: The internal status logger timestamp format is now configurabl=
e with system property log4j2.StatusLogger.DateFormat.
LOG4J2-2236: Removed unnecessary dependency on jcommander since Log4j uses =
embedded picocli since 2.9.
LOG4J2-2146: Update version of maven bundle plugin to 3.4.0. Convert bundle=
plugin error to a warning.
LOG4J2-2215: Reduce compiler warnings in log4j-api.
LOG4J2-2127: Removed unnecessary threadlocal StringBuilder field from MdcPa=
tternConverter. Thanks to Carter Kozak.
LOG4J2-2194: Require Java 9 to compile the log4j-perf module to allow bench=
marking with Java 9 APIs.
LOG4J2-2193: Update JMH to version 1.19 from 1.1.1.
LOG4J2-2132: Update ZeroMQ's jeromq from 0.4.2 to 0.4.3.
LOG4J2-2165: Update Jackson from 2.9.2 to 2.9.3.
LOG4J2-2184: Update MongoDB driver from 3.0.4 to 3.6.1.
LOG4J2-2197: Document default property value support. Thanks to Fabrice Dau=
gan.
LOG4J2-2198: Update MongoDB dependencies from classic to modern.
LOG4J2-2204: org.apache.logging.log4j.core.util.WatchManager.getWatchers() =
should pre-allocate its new Map.
LOG4J2-2209: Rename existing MongoDb plugin and related artifacts from Mong=
oDb to MongoDb2.
LOG4J2-2210: Fix error log message for Script which says ScriptFile instead=
. Thanks to Bj=C3=B6rn Kautler.
LOG4J2-2212: Unnecessary contention in CopyOnWriteSortedArrayThreadContextM=
ap. Thanks to Daniel Feist, Gary Gregory.
LOG4J2-2213: Unnecessary contention in GarbageFreeSortedArrayThreadContextM=
ap. Thanks to Daniel Feist, Gary Gregory.
LOG4J2-2214: Unnecessary contention in DefaultThreadContextMap. Thanks to D=
aniel Feist, Gary Gregory.
LOG4J2-2182: NullPointerException at org.apache.logging.log4j.util.Activato=
r.loadProvider(Activator.java:81) in log4j 2.10.0. Thanks to liwenxian2017,=
Gary Gregory.
LOG4J2-2202: MarkerFilter onMismatch invalid attribute in .properties. Than=
ks to Kilian, Gary Gregory.
LOG4J2-2219: Configuration builder classes should look for "onMismatch", no=
t "onMisMatch". Thanks to Kilian, Gary Gregory.
LOG4J2-2205: New module log4j-mongodb3: Remove use of deprecated MongoDB AP=
Is and code to the Java driver version 3 API. Thanks to Gary Gregory.
LOG4J2-2188: Split off JPA support into a new module log4j-jpa. Thanks to G=
ary Gregory.
LOG4J2-2229: Update Jackson from 2.9.3 to 2.9.4. Thanks to Gary Gregory.
LOG4J2-2243: Cannot see or copy all of certain JAnsi exception messages on =
Windows due to NUL characters. Thanks to Gary Gregory.
LOG4J2-2245: Update Apache Commons Compress from 1.15 to 1.16.1. Thanks to =
Gary Gregory.
LOG4J2-2259: Update MongoDB 3 module from driver 3.6.1 to 3.6.3.
LOG4J2-2260: [SMTP] Update javax.mail from 1.6.0 to 1.6.1.
LOG4J2-2264: Update JAnsi from 1.16 to 1.17.
=20
Apache Log4j 2.11.0 requires a minimum of Java 7 to build and run. Log4j 2.=
3 was the last release that supported Java 6.
=20
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 spec=
ific classes and methods. The package names and Maven groupId have been cha=
nged to org.apache.logging.log4j to avoid any conflicts with log4j 1.x.
=20
For complete information on Apache Log4j 2, including instructions on how t=
o submit bug reports, patches, or suggestions for improvement, see the Apac=
he Apache Log4j 2 website:
=20
https://logging.apache.org/log4j/2.x/
=20
------=_Part_2258523_76742860.1521255443419--