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 41AAC200BA7 for ; Fri, 7 Oct 2016 07:56:36 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 401C1160AF0; Fri, 7 Oct 2016 05:56:36 +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 35469160ADB for ; Fri, 7 Oct 2016 07:56:35 +0200 (CEST) Received: (qmail 15319 invoked by uid 500); 7 Oct 2016 05:56:34 -0000 Mailing-List: contact log4j-user-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Log4J Users List" Reply-To: "Log4J Users List" Delivered-To: mailing list log4j-user@logging.apache.org Received: (qmail 15291 invoked by uid 99); 7 Oct 2016 05:56:34 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 07 Oct 2016 05:56:34 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 9C7AAC7CDD; Fri, 7 Oct 2016 05:56:33 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.98 X-Spam-Level: * X-Spam-Status: No, score=1.98 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 4ziDPeGJZmAZ; Fri, 7 Oct 2016 05:56:30 +0000 (UTC) Received: from smtp687.redcondor.net (smtp687.redcondor.net [208.80.206.87]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with ESMTPS id BB50A5F393; Fri, 7 Oct 2016 05:56:29 +0000 (UTC) Received: from mailproxy10.neonova.net ([137.118.22.75]) by smtp687.redcondor.net ({f50aeeea-7a14-4dd3-bdda-1246754c15b3}) via TCP (outbound) with ESMTP id 20161007055619033_0687; Fri, 07 Oct 2016 05:56:19 +0000 X-RC-FROM: Received: from [192.168.1.9] (ip72-201-43-179.ph.ph.cox.net [72.201.43.179]) (Authenticated sender: ralph.goers@dslextreme.com) by mailproxy10.neonova.net (Postfix) with ESMTPA id 0A198360126; Fri, 7 Oct 2016 01:56:11 -0400 (EDT) From: Ralph Goers Content-Type: multipart/alternative; boundary="Apple-Mail=_BAA6175B-60CE-4213-B1FC-0FC8EEF67F4F" Subject: [ANNOUNCEMENT] Apache Log4j 2.7 released Date: Thu, 6 Oct 2016 22:56:11 -0700 Message-Id: <350E8468-42FA-4B86-A89C-1C7B1836C289@dslextreme.com> Cc: Logging PMC To: Log4J Developers List , Log4J Users List , Logging General Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\)) X-Mailer: Apple Mail (2.3112) X-DLP-OUTBOUND: 137.118.22.64/27 X-MAG-OUTBOUND: greymail.redcondor.net@137.118.22.64/27 archived-at: Fri, 07 Oct 2016 05:56:36 -0000 --Apple-Mail=_BAA6175B-60CE-4213-B1FC-0FC8EEF67F4F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 The Apache Log4j 2 team is pleased to announce the Log4j 2.7 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 new logging API modules for Scala 2.10 and 2.11, and support for various non-blocking = queue implementations in AsyncAppender. Furthermore the ThreadContext map can now be configured = to be garbage-free, and users can now inject context data from other sources than ThreadContext. = Context data values can be any Object, not just Strings. More details on the 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, = throwable); The Log4j 2.7 API, as well as many core components, maintains binary = compatibility with previous releases. GA Release 2.7 Changes in this version include: New features: o LOG4J2-1578: RoutingAppender can be configured with scripts. Add = Script in a Routes element.=20 o LOG4J2-1597: Add a ScriptAppenderSelector to create an Appender = specified by a Script.=20 o LOG4J2-1349: (GC) Added support for garbage-free ThreadContext map. = Disabled by default, users need to enable this explicitly.=20 o LOG4J2-1447: (GC) Changed LogEvent's internal data structure for = context data to be garbage-free. Added method LogEvent#getContextData(), = deprecated method #getContextMap().=20 o LOG4J2-1010: Users can now inject context data from other sources = than ThreadContext. Values can be any Object, not just Strings. Thanks = to Mikael St=C3=A5ldal.=20 o LOG4J2-1568: Added support for = java.util.concurrent.LinkedTransferQueue to AsyncAppender.=20 o LOG4J2-1430: Added optional support for Conversant = DisruptorBlockingQueue in AsyncAppender. Thanks to John Cairns.=20 o LOG4J2-1439: Added optional support for JCTools MPSC bounded = lock-free queue in AsyncAppender. Thanks to Anthony Maire.=20 o LOG4J2-1558: SocketAppender now supports IO buffering.=20 o LOG4J2-1557: Add a Builder for the SocketAppender (deprecates factory = method).=20 o LOG4J2-1609: Add a Builder to ServletAppender and deprecate factory = method.=20 o LOG4J2-1553: AbstractManager now implements AutoCloseable.=20 o LOG4J2-1528: Added ability to generate Log4j 2-style XML = configuration file from ConfigurationBuilder.=20 o LOG4J2-1181: Added Logging API for Scala 2.10 and 2.11.=20 o LOG4J2-1512: Added options to exclude stack trace from JSON, XML and = YAML layouts.=20 o LOG4J2-1539: Added Core API Configurator.shutdown(LoggerContext, = long, TimeUnit).=20 o LOG4J2-1501: FileAppender is now able to create files on-demand.=20 o LOG4J2-1504: RollingFileAppender is now able to create files = on-demand.=20 o LOG4J2-1471: [PatternLayout] Add an ANSI option to %xThrowable.=20 o LOG4J2-1472: org.apache.logging.log4j.core.LoggerContext now = implements Closeable.=20 o LOG4J2-1458: [PatternLayout] Add an ANSI option to %message.=20 o LOG4J2-1505: Create a Builder for the FileAppender plugin to = facilitate adding attributes in the future.=20 o LOG4J2-1507: Allow Builders to be completely generic.=20 o LOG4J2-1508: Allow a Builder to subclass another Builder.=20 o LOG4J2-1516: Add ThreadContextMap2 interface supporting method = putAll(Map). Thanks to Gary Gregory.=20 o LOG4J2-1519: Add ThreadContext.putAll(Map).=20 o LOG4J2-1520: Add JUnit Rule implementations to manage the thread = context.=20 o LOG4J2-1547: The Core AbstractConfiguration now tracks its = LoggerContext and add Configuration.getLoggerContext().=20 o LOG4J2-1540: The Core AbstractManager now tracks its LoggerContext.=20= o LOG4J2-1577: Add a Builder to the RoutingAppender and deprecate = factory method.=20 Fixed Bugs: o LOG4J2-1618: Fixed ClassCastException when using JUL logging during = shutdown. Thanks to Raman Gupta.=20 o LOG4J2-1620: 2.7-rc1: RollingFileAppender immediateFlush default = value should be true, not false. Thanks to Sascha Scholz.=20 o LOG4J2-1611: Improved performance of context data injector for web = applications to be on par with standalone applications.=20 o LOG4J2-1591: Introduced new interface LifeCycle2 with = stop(long,TimeUnit) method to avoid breaking backwards compatibility = with new Configurator.shutdown(LoggerContext, long, TimeUnit) API.=20 o LOG4J2-1590: Fixed issue with filters extending AbstractFilter that = did not override methods with unrolled varargs.=20 o LOG4J2-1583: Fixed scrambled log messages triggered by nested logging = from toString() method of a logging parameter object. Thanks to Larry = West.=20 o LOG4J2-1259: Log4j threads are no longer leaking on Tomcat shutdown. = Thanks to Misagh Moayyed, Steffen Offermann.=20 o LOG4J2-1051: When starting on Google App Engine, Interpolator now = suppresses the NoClassDefFoundError stack trace for the jvmrunargs = lookup. Thanks to Lukasz Lenart.=20 o LOG4J2-1582: When initializing on platforms where JMX is not = available, Interpolator component no longer prints stack trace for = warning messages.=20 o LOG4J2-1581: Unregistering JMX components no longer prints a stack = trace when the MBean has already been unregistered.=20 o LOG4J2-1313: Support Property values to be specified in configuration = as a value attribute as well as an element. Thanks to Philipp Knobel, = Leon Finker.=20 o LOG4J2-1575: (GC) LoggerConfig now stores configuration properties in = a List, not a Map to prevent creating temporary Iterator objects. Added = method LoggerConfig#getPropertyList(), deprecated method = #getProperties().=20 o LOG4J2-1457: Fixed class loader deadlock when using async logging and = extended stack trace pattern. Thanks to Leon Finker.=20 o LOG4J2-1563: Fix to prevent Log4j 2.6.2 and higher from losing = exceptions when a security manager is present. Thanks to Jason Tedor.=20 o LOG4J2-1530: Fixed issue where LogEvent.getContextStack() returned = null.=20 o LOG4J2-1518: Prevent deadlock in Async Loggers when queue is full and = logged Object's toString() logs another message. Thanks to Leon Finker.=20= o LOG4J2-1542: Prevent ArrayIndexOutOfBoundsException in = ParameterizedMessage.formatTo for single-char or empty messages. Thanks = to Rog=C3=A9rio Lecari=C3=A3o Leite.=20 o LOG4J2-1549: Fixed issue where = AsyncLoggerContextSelector+PropertiesConfigurationBuilder defaulted to = includeLocation=3Dtrue. Thanks to Jason Bedard.=20 o LOG4J2-1562: Prevent SocketAppender memory usage from growing = unbounded if it cannot connect to a server.=20 o LOG4J2-1559: Prevent NPE in Level.isInRange. Thanks to Andrey = Plotkin.=20 o LOG4J2-1511: DynamicThresholdFilter filtered incorrectly when params = were passed as individual arguments instead of varargs. Thanks to = Srikanth Surukuntu.=20 o LOG4J2-1548: [CronTriggeringPolicy] ConfigurationScheduler scheduled = the task infinitely after first fire.=20 o LOG4J2-1506: Log4j should not unregister JMX MBeans when = log4j2.disable.jmx property is true. Thanks to Johannes Schleger.=20 o LOG4J2-1490: Log4j2 should postpone creating log file until the = appender actually receives an event. Thanks to Krzysztof Taborski.=20 o LOG4J2-1320: Support loading custom plugins from jar files and = directories whose classpath entries use the "vfs" URL protocol. Thanks = to Paresh Varke, Pierrick Hymbert.=20 o LOG4J2-1541: Fix file handle resource leak in = XmlConfiguration.XmlConfiguration(ConfigurationSource).=20 o LOG4J2-1538: Prevent NPE when dynamically removing filters. Thanks to = Igor Karpov.=20 o LOG4J2-1532: Attributes were not merged properly in composite = configurations.=20 o LOG4J2-1529: Attributes were not merged properly in composite = configurations. Thanks to Sridevi Narra.=20 o LOG4J2-1527: Prevent NPE in RingBufferLogEvent.getFormattedMessage() = when used in web applications. Thanks to Jose Leon.=20 o LOG4J2-905: Added ability to disable (date) lookup completely for = compatibility with other libraries like Camel. Thanks to Moritz L=C3=B6ser= .=20 o LOG4J2-1526: Added support for setting StatusLogger destination in = ConfigurationBuilder.=20 o LOG4J2-1448: Allow comma separated agents, host list to be passed to = FlumeAppender. Thanks to Keith Laban.=20 o LOG4J2-1500: Merging configurations failed with an NPE when comparing = Nodes with different attributes. Thanks to Jose Leon.=20 o LOG4J2-1482: Fixed improper header in CsvParameterLayout. Thanks to = Sumit Singhal.=20 o LOG4J2-1199: Documented that JVM Input Arguments Lookup (JMX) is not = available on Google App Engine.=20 o LOG4J2-1438: (GC) Added method getParameter() to ObjectMessage (and = ReusableObjectMessage).=20 o LOG4J2-1488: (GC) Fixed ISO8601 %date conversion pattern with a = period '.' separator for milliseconds is now garbage free. Thanks to = Richard Zschech.=20 o LOG4J2-1489: (GC) Fixed %date conversion patterns with a timezone = parameter are now garbage free. Thanks to Richard Zschech.=20 o LOG4J2-1279: Prevent NullPointerException in = FastDateParser$TimeZoneStrategy. Thanks to Tony Baines.=20 o LOG4J2-1341: (GC) HighlightConverter and StyleConverter are now = GC-free. Thanks to Richard Zschech.=20 o LOG4J2-1467: [OSGi] Fixed missing import package. Thanks to Ralf, = Gary Gregory.=20 o LOG4J2-351: [OSGi] Fixed wrong Fragment-Host in manifest files. = Thanks to Roland Weiglhofer.=20 o LOG4J2-1313: Properties declared in configuration can now have their = value either in the element body or in an attribute named "value". = Thanks to Philipp Knobel.=20 o LOG4J2-1235: = org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy was not = working correctly. Thanks to Niranjan Rao, Sascha Scholz, Aleksey = Zvolinsky.=20 o LOG4J2-1502: Fixed issue where CsvParameterLayout and = CsvLogEventLayout inserted NUL characters if data starts with {, (, [ or = " Thanks to Sumit Singhal.=20 o LOG4J2-1573: Layout is no longer optional. Thanks to Steffen = Offermann.=20 o LOG4J2-1608: ServletAppender does not provide throwable object to = ServletContext.=20 o LOG4J2-1599: Prevent potential NPE in = org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringB= uilder, char[], int, Object[], int, int[]).=20 o LOG4J2-1600: Prevent potential NPE due to = org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(= PatternMatch[], String, boolean, boolean, Configuration).=20 o LOG4J2-1601: Prevent potential NPE due to = org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(= AbstractScript, PatternMatch[], String, boolean, boolean, = Configuration).=20 o LOG4J2-1602: Prevent potential NPE in = org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equal= s(Object) when object is null.=20 o LOG4J2-1603: Redo hashCode() and equals() methods in = org.apache.logging.log4j.core.net.ssl classes.=20 o LOG4J2-1610: Add targetNamespace to log4j-config.xsd. GitHub #43. = Thanks to Shubhankar.=20 o LOG4J2-1619: new Log4jLogEvent().toString() throws an NPE.=20 Changes: o LOG4J2-1604: Log4j2 TcpSocketServer in background. Thanks to Colin = Hillman.=20 o LOG4J2-1574: Allow the RollingFileAppender to use default pattern = layout.=20 o LOG4J2-1556: Custom Log4j threads now extend Log4jThread.=20 o LOG4J2-1605: Improve error messages for TcpSocketServer and = UdpSocketServer.=20 o LOG4J2-1458: Updated Jackson from 2.7.5 to 2.8.0.=20 o LOG4J2-1494: Updated Jackson from 2.8.0 to 2.8.1.=20 o LOG4J2-1569: Updated Jackson from 2.8.1 to 2.8.2.=20 o LOG4J2-1598: Updated Jackson from 2.8.2 to 2.8.3.=20 o LOG4J2-1495: Updated LMAX Disruptor from 3.3.4 to 3.3.5.=20 o LOG4J2-1496: Updated Kafka client from 0.9.1.0 to 0.10.0.0.=20 o LOG4J2-1533: Updated Kafka client from 0.10.0.0 to 0.10.0.1.=20 o LOG4J2-1487: Updated JMS test from ActiveMQ 5.13.3 to 5.13.4.=20 o LOG4J2-1551: Updated JMS test from ActiveMQ 5.13.4 to 5.14.0.=20 o LOG4J2-1543: Removed deprecated Core API = org.apache.logging.log4j.core.util.Constants.UTF_8.=20 o LOG4J2-1544: Removed deprecated Core API = org.apache.logging.log4j.core.util.Assert.requireNonNull(T, String).=20 o LOG4J2-1545: Removed deprecated Web API = org.apache.logging.log4j.web.WebLookup.getServletContext().=20 Apache Log4j 2.7 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: http://logging.apache.org/log4j/2.x/= --Apple-Mail=_BAA6175B-60CE-4213-B1FC-0FC8EEF67F4F--