[ANNOUNCEMENT] Log4j 2.13.0 released!
Ralph Goers <[email protected]> Sun, 15 Dec 2019 13:47:28 -0700
| Newsgroups | gmane.comp.version-control.subversion.devel,gmane.comp.jakarta.log4j.user,gmane.comp.apache.logging |
|---|---|
| Message-ID | <47CCEB3D-529C-4FCF-88F2-258E2DE4B241__21488.2741028973$1576442870$gmane$org@dslextreme.com> |
The Apache Log4j 2 team is pleased to announce the Log4j 2.13.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. The artifacts may be downloaded from = https://logging.apache.org/log4j/2.x/download.html. This release contains bugfixes and minor enhancements. Some of the new = features in this release are: =E2=80=A2 Log4j 2 now requires Java 8 or higher to build and = run. =E2=80=A2 Experimental support for Log4j 1 configuration files. = See Log4j 2 Compatiblity with Log4j 1. =E2=80=A2 The Logger API has been enhanced to support a builder = pattern. This can dramatically improve the overhead of capturing = location information. See Log Builder. =E2=80=A2 Better integration with Spring Boot by providing = access to Spring variables in Log4j 2 configuration files and allowing = Log4j 2 system properties to be defined in the Spring configuration. See = Logging in the Cloud. =E2=80=A2 Support for accessing Kubernetes information via a = Log4j 2 Lookup. =E2=80=A2 The Gelf Layout now allows the message to be formatted = using a PatternLayout pattern. Logging in the Cloud provides an example = of this, as well as the use of the Spring and Kubernetes Lookups. Due to a break in compatibility in the SLF4J binding, Log4j now ships = with two versions of the SLF4J to Log4j adapters. log4j-slf4j-impl = should be used with SLF4J 1.7.x and earlier and log4j-slf4j18-impl = should be used with SLF4J 1.8.x and later. Note that the XML, JSON and YAML formats changed in the 2.11.0 release: = they no longer have the "timeMillis" attribute and instead have an = "Instant" element with "epochSecond" and "nanoOfSecond" attributes. The Log4j 2.13.0 API, as well as many core components, maintains binary = compatibility with previous releases. GA Release 2.13.0 Changes in this version include: New Features =E2=80=A2 LOG4J2-2732: Add ThreadContext.putIfNotNull method. = Thanks to Matt Pavlovich. =E2=80=A2 LOG4J2-2731: Add a Level Patttern Selector. =E2=80=A2 LOG4J2-63: Add experimental support for Log4j 1 = configuration files. =E2=80=A2 LOG4J2-2716: Add the ability to lookup Kubernetes = attributes in the Log4j configuration. Allow Log4j properties to be = retrieved from the Spring environment if it is available. =E2=80=A2 LOG4J2-2710: Allow Spring Boot application properties = to be accessed in the Log4j 2 configuration. Add lower and upper case = Lookups. =E2=80=A2 LOG4J2-2639: Add builder pattern to Logger interface. Fixed Bugs =E2=80=A2 LOG4J2-2058: Prevent recursive calls to = java.util.LogManager.getLogger(). =E2=80=A2 LOG4J2-2725: LOG4J2-2725 - Added try/finally around = event.execute() for RingBufferLogEventHandler to clear memory correctly = in case of exception/error Thanks to Dzmitry Anikechanka. =E2=80=A2 LOG4J2-2635: Wrong java version check in = ThreadNameCachingStrategy. Thanks to Filipp Gunbin. =E2=80=A2 LOG4J2-2674: Use a less confusing name for the = CompositeConfiguration source. Thanks to Anton Korenkov. =E2=80=A2 LOG4J2-2727: Add setKey method to Kafka Appender = Builder. Thanks to Cl=C3=A9ment Mathieu. =E2=80=A2 LOG4J2-2707: ArrayIndexOutOfBoundsException could = occur with MAC address longer than 6 bytes. Thanks to Christian Frank. =E2=80=A2 LOG4J2-2712: The rolling file appenders would fail to = compress the file after rollover if the file name matched the file = pattern. =E2=80=A2 LOG4J2-2693: @PluginValue does not support attribute = names besides "value". =E2=80=A2 LOG4J2-2647: Validation blocks definition of script in = properties configuration. =E2=80=A2 LOG4J2-2680: Set result of rename action to true if = file was copied. Thanks to Guillermo Xavier Hurtado Garcia. =E2=80=A2 LOG4J-2672: Add automatic module names where missing. = Thanks to Stephen Colebourne. =E2=80=A2 LOG4J2-2673: OutputStreamAppender.Builder ignores = setFilter(). Thanks to Yuichi Sugimura. =E2=80=A2 LOG4J2-2725: Prevent a memory leak when async loggers = throw errors. Thanks to Dzmitry Anikechanka. Changes =E2=80=A2 LOG4J2-2701: Update Jackson to 2.9.10. =E2=80=A2 LOG4J2-2709: Allow message portion of GELF layout to = be formatted using a PatternLayout. Allow ThreadContext attributes to be = explicitly included or excluded in the GelfLayout. Apache Log4j 2.13.0 requires a minimum of Java 8 to build and run. Log4j = 2.3 was the last release that supported Java 6 and Log4j 2.11.2 is the = last release to support Java 7. 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/=