Re: [ANNOUNCE] Apache Log4j 2.11.0 released
Ralph Goers <[email protected]> Fri, 16 Mar 2018 17:43:31 -0700
| Newsgroups | gmane.comp.apache.ode.devel,gmane.comp.apache.logging,gmane.comp.jakarta.log4j.user |
|---|---|
| Message-ID | <80CEFA8D-D216-477C-9DC3-245735F3458D__21993.9105598771$1521247308$gmane$org@dslextreme.com> |
Please ignore the email below. It contains incorrect text regarding the = release. Ralph > On Mar 16, 2018, at 5:39 PM, Ralph Goers <[email protected]> = wrote: >=20 > The Apache Log4j 2 team is pleased to announce the Log4j 2.10.0 = release! >=20 > 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. >=20 > This release contains new features, bugfixes and minor enhancements. = Some of the new features include support for the Java 9 module system, = support for the new SLF4j 1.8 binding mechanism, simplification of the = Log4j property naming scheme, and native support of Jetty's logger. = Log4j API is now a fully compliant module while the other Log4j jars are = named automatic modules. >=20 > As of Log4j 2.9.0, the Log4j API was modified to use = java.util.ServiceLoader to locate Log4j implementations, although the = former binding mechanism is still supported. The Log4j API jar is now a = multi-release jar to provide implementations of 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 some tools are not compatible = with multi-release jars and may fail trying to process class files 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, = 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: >=20 > <Appenders> > <Socket name=3D"socket" host=3D"localhost" port=3D"9500"/> > </Appenders> >=20 > into: >=20 > <Appenders> > <Socket name=3D"socket" host=3D"localhost" port=3D"9500"> > <SerializedLayout/> > </Socket> > </Appenders> >=20 > We do, however, discourage the use of SerializedLayout and recommend = JsonLayout as a replacement: >=20 > <Appenders> > <Socket name=3D"socket" host=3D"localhost" port=3D"9500"> > <JsonLayout properties=3D"true"/> > </Socket> > </Appenders> >=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 compatibility with previous releases with the following = exceptions to Log4j Core. Log4j 2.11.0 moves code from log4j-core to = several new Maven modules. Dependencies to other jars that used to be = optional in log4j-core are now required 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 > =E2=80=A2 Group ID: org.apache.logging.log4j > =E2=80=A2 Artifact ID: log4j-jdbc-dbc2 > =E2=80=A2 Old package: = org.apache.logging.log4j.core.appender.db.jdbc > =E2=80=A2 New package: org.apache.logging.log4j.jdbc.appender >=20 > log4j-jpa > =E2=80=A2 Group ID: org.apache.logging.log4j > =E2=80=A2 Artifact ID: log4j-jpa > =E2=80=A2 Old package 1: = org.apache.logging.log4j.core.appender.db.jpa > =E2=80=A2 New package 1: org.apache.logging.log4j.jpa.appender > =E2=80=A2 Old package 2: = org.apache.logging.log4j.core.appender.db.jpa.converter > =E2=80=A2 New package 2: org.apache.logging.log4j.jpa.converter >=20 > log4j-mongodb2 > =E2=80=A2 Group ID: org.apache.logging.log4j > =E2=80=A2 Artifact ID: log4j-mongodb2 > =E2=80=A2 Old package: org.apache.logging.log4j.mongodb > =E2=80=A2 New package: org.apache.logging.log4j.mongodb2 >=20 > log4j-mongodb3 > =E2=80=A2 Group ID: org.apache.logging.log4j > =E2=80=A2 Artifact ID: log4j-mongodb3 > =E2=80=A2 Old package: org.apache.logging.log4j.mongodb > =E2=80=A2 New package: org.apache.logging.log4j.mongodb3 >=20 > GA Release 2.10.0 >=20 > Changes in this version include: >=20 > New Features >=20 > =E2=80=A2 LOG4J2-2120: Properly escape newlines and other = control characters in JSON. Thanks to Carter Douglas Kozak. > =E2=80=A2 LOG4J2-2109: Add property to disable message pattern = converter lookups. Thanks to Carter Douglas Kozak. > =E2=80=A2 LOG4J2-2112: MapMessage should use deep toString for = values. Thanks to Carter Douglas Kozak. > =E2=80=A2 LOG4J2-2103: XML encoding for PatternLayout. > =E2=80=A2 LOG4J2-2114: Provide a native Log4j 2 implementation = of Eclipse Jetty's org.eclipse.jetty.util.log.Logger. > =E2=80=A2 LOG4J2-1203: Allow filtering of line breaks in layout = pattern. Thanks to Robert Turner. > =E2=80=A2 LOG4J2-2098: Add a noop AppenderSkeleton for = applications still using Log4j 1.x. > =E2=80=A2 LOG4J2-2062: Add possibility of sending the key of a = message to Kafka using KafkaAppender. Thanks to Jorge Sanchez. > =E2=80=A2 LOG4J2-2056: Modularize Log4j-api and make most other = log4j jars automatic modules. > =E2=80=A2 LOG4J2-1431: Simplify log4j system property naming = scheme. > =E2=80=A2 LOG4J2-1809: Add global configuration environment SPI. > =E2=80=A2 LOG4J2-1694: Add fields with fixed values to = JSON/XML/YAML layouts. Thanks to Michal Dvo=C5=99=C3=A1k. > =E2=80=A2 LOG4J2-2054: Provide ways to configure SSL that avoid = plain-text passwords in the log4j configuration. The configuration may = now specify a system environment variable that holds the password, or = the path to a file that holds the password. > =E2=80=A2 LOG4J2-2071: Add = org.apache.logging.log4j.core.config.composite.CompositeConfiguration#toSt= ring(). Thanks to Carter Kozak. > Fixed Bugs >=20 > =E2=80=A2 LOG4J2-2107: MapMessage supports both = StringBuilderFormattable and MultiformatMessage. Thanks to Carter = Douglas Kozak. > =E2=80=A2 LOG4J2-2102: MapMessage JSON encoding will escape keys = and values. Thanks to Carter Douglas Kozak. > =E2=80=A2 LOG4J2-2101: Non-string value in MapMessage caused = ClassCastException. Thanks to Carter Douglas Kozak. > =E2=80=A2 LOG4J2-2091: Log4j respects the configured = "log4j2.is.webapp" property Thanks to Carter Douglas Kozak. > =E2=80=A2 LOG4J2-2100: LevelMixIn class for Jackson is coded = incorrectly > =E2=80=A2 LOG4J2-2087: Jansi now needs to be enabled explicitly = (by setting system property log4j.skipJansi to false). To avoid causing = problems for web applications, Log4j will no longer automatically try to = load Jansi without explicit configuration. Thanks to Andy Gumbrecht. > =E2=80=A2 LOG4J2-2060: AbstractDatabaseManager should make a = copy of LogEvents before holding references to them: AsyncLogger log = events are mutable. > =E2=80=A2 LOG4J2-2055: If Log4j is used as the Tomcat logging = implementation startup might fail if an application also uses Log4j. > =E2=80=A2 LOG4J2-2031: Until this change, messages appeared out = of order in log file any time when the async logging queue was full. = With this change, messages are only logged out of order to prevent = deadlock when Log4j2 detects recursive logging while the queue is full. > =E2=80=A2 LOG4J2-2053: Exception = java.nio.charset.UnsupportedCharsetException: cp65001 in 2.9.0. > =E2=80=A2 LOG4J2-1216: Nested pattern layout options broken. = Thanks to Thies Wellpott, Barna Zsombor Klara, GFriedrich. > =E2=80=A2 LOG4J2-2070: Log4j1XmlLayout does not provide the = entire stack trace, it is missing the caused by information. Thanks to = Doug Hughes. > =E2=80=A2 LOG4J2-2036: CompositeConfiguration supports = Reconfiguration. PR #115. Thanks to Robert Haycock. > =E2=80=A2 LOG4J2-2073: Log4j-config.xsd should make AppenderRef = optional for each Logger element. Thanks to Patrick Lucas. > =E2=80=A2 LOG4J2-2074: The console appender should say why it = cannot load JAnsi. > =E2=80=A2 LOG4J2-2085: Wrong Apache Commons CSV version = referenced in the Javadoc of CsvParameterLayout. Thanks to Istv=C3=A1n = Neuwirth. > Changes >=20 > =E2=80=A2 LOG4J2-2076: Split up log4j-nosql into one module per = appender. > =E2=80=A2 LOG4J2-2088: Upgrade picocli to 2.0.3 from 0.9.8. > =E2=80=A2 LOG4J2-2025: Provide support for overriding the Tomcat = Log class in Tomcat 8.5+. > =E2=80=A2 LOG4J2-2057: Support new SLF4J binding mechanism = introduced in SLF4J 1.8. > =E2=80=A2 LOG4J2-2052: Disable thread name caching by default = when running on Java 8u102 or later. > =E2=80=A2 LOG4J2-1896: Update classes in = org.apache.logging.log4j.core.net.ssl in APIs from String to a = PasswordProvider producing char[] for passwords. > =E2=80=A2 LOG4J2-2078: Update LMAX disruptor from 3.3.6 to = 3.3.7. > =E2=80=A2 LOG4J2-2081: Update Apache Commons Compress from 1.14 = to 1.15. > =E2=80=A2 LOG4J2-2089: [TagLib] Update servlet-api provided = dependency from 2.5 to 3.0.1. > =E2=80=A2 LOG4J2-2096: Update Apache Kafka kafka-clients from = 0.11.0.1 to 1.0.0. > =E2=80=A2 LOG4J2-2077: Update from Jackson 2.9.1 to 2.9.2. > =E2=80=A2 LOG4J2-2117: Jackson dependencies for 2.9.2 = incorrectly bring in jackson-annotations 2.9.0 instead of 2.9.2. > Apache Log4j 2.10.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 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. >=20 > 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: >=20 > https://logging.apache.org/log4j/2.x/ >=20