Return-Path: X-Original-To: apmail-logging-log4j-dev-archive@www.apache.org Delivered-To: apmail-logging-log4j-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 70112109FD for ; Sat, 8 Feb 2014 20:28:53 +0000 (UTC) Received: (qmail 82384 invoked by uid 500); 8 Feb 2014 20:28:51 -0000 Delivered-To: apmail-logging-log4j-dev-archive@logging.apache.org Received: (qmail 82288 invoked by uid 500); 8 Feb 2014 20:28:51 -0000 Mailing-List: contact log4j-dev-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Log4J Developers List" Reply-To: "Log4J Developers List" Delivered-To: mailing list log4j-dev@logging.apache.org Received: (qmail 82278 invoked by uid 99); 8 Feb 2014 20:28:51 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 08 Feb 2014 20:28:51 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of nicholas@nicholaswilliams.net designates 209.85.213.45 as permitted sender) Received: from [209.85.213.45] (HELO mail-yh0-f45.google.com) (209.85.213.45) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 08 Feb 2014 20:28:45 +0000 Received: by mail-yh0-f45.google.com with SMTP id i57so3827920yha.18 for ; Sat, 08 Feb 2014 12:28:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nicholaswilliams.net; s=nwts; h=from:content-type:subject:date:message-id:to:mime-version; bh=3IBQoflGM+Tnr7xy5VlvJN4A3zYWSjPYmDsAN2VKM/c=; b=kEk0hS7My2jYOy2HWUB9JqJtu/S/5U/xqIl3iyFM6eg2FvpQeob9ScXPsbAuPmgt3u cVTItA8jpka1zqIr+0v4YuI+bl1ly03/7BJpEI+JcQWXhvfT0ysjmJUozIsrX9z2cQ5z I0mcWKuPAGwH10dyO8HN926yBWNIYbI0+CRnI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:content-type:subject:date:message-id:to :mime-version; bh=3IBQoflGM+Tnr7xy5VlvJN4A3zYWSjPYmDsAN2VKM/c=; b=E7SMYDBMNJ6GBFSW4/fSuUx1v0EZbftnwU36A2EMwHq6wwcMx1RAdWBB6jwWxyyrEY u9K68jgnxQRTZOsWxdVVkOGEYxQnfR9sCR5J/9wkNya3vdQ7Ji6eE6h3JptxlnlA+Xlo PuuELiW1ZNQDnYVeF9pE8f6kQF4BRFYB9qfK6BVtAJb3Jw3Mlk/qw6J4GWcDnVtunwcU MeP/GS5bJfIuKRDk8lZJ6kcrxoRi07s3cV4df8Ah6yGbNtH2jD82qBVUYA+ozV5ckzN8 kotNU0VVmBOMdXyFQ+P4TeO8tF2qitMvVCTpEcM8/zJe4yNycZsoVY4BIQkdVK3CJznc afog== X-Gm-Message-State: ALoCoQkVlbFA4W0/50wcV+wCcoCW/yTAsZeMCm3etIwxHaKGmDHYIlAhb5rx2vJIgPyUtihQCe9T X-Received: by 10.236.115.73 with SMTP id d49mr18426081yhh.12.1391891304429; Sat, 08 Feb 2014 12:28:24 -0800 (PST) Received: from [172.16.123.8] (c-69-180-246-95.hsd1.tn.comcast.net. [69.180.246.95]) by mx.google.com with ESMTPSA id d7sm25786696yhd.24.2014.02.08.12.28.23 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 08 Feb 2014 12:28:23 -0800 (PST) From: Nick Williams Content-Type: multipart/alternative; boundary="Apple-Mail=_72C40575-0CC2-4B38-BC00-501B45639AEC" Subject: [VOTE] Log4j 2.0-rc1 rc1 Date: Sat, 8 Feb 2014 14:28:24 -0600 Message-Id: To: Log4J Developers List , Logging PMC Mime-Version: 1.0 (Apple Message framework v1283) X-Mailer: Apple Mail (2.1283) X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail=_72C40575-0CC2-4B38-BC00-501B45639AEC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii This is a vote to release Log4j 2.0-rc1, the twelfth release of Log4j = 2.0. This release contains several changes that break binary and backwards = compatibility with previous versions. Please read the release notes = correctly so that you can adjust your usage of Log4j 2, if necessary. Changes in this version include: New features: o LOG4J2-530: (JMX) JMX Client GUI should dynamically update when = LoggerContext MBeans are registered/unregistered in MBean server.=20 o LOG4J2-479: ThreadContext now uses plain ThreadLocal by default, = unless system property isThreadContextMapInheritable has value "true". = Thanks to MK.=20 o LOG4J2-481: Add Stream interface to Loggers. Thanks to Matt Sicker.=20= o LOG4J2-482: Documentation fix: The attribute of Route to refer to an = appender is "ref" not "AppenderRef". Thanks to Hongdi Ren.=20 o LOG4J2-467: Added option to toggle Thread name caching in = AsyncLogger. Thanks to Anthony Baldocchi.=20 o LOG4J2-423: Added MBeans for instrumenting AsyncAppenders and = AsyncLogger RingBuffers, exposing queue size, remaining capacity and = other attributes.=20 o LOG4J2-420: Create a lookup for resource bundle substitution.=20 o LOG4J2-415: Format log event time as UNIX time (seconds or = milliseconds).=20 o LOG4J2-401: Configure FileAppender buffer size.=20 o LOG4J2-402: Configure RandomAccessFileAppender buffer size.=20 Fixed Bugs: o LOG4J2-475: Changed the MongoDBConnection to add a MongoDB encoding = hook instead of a decoding hook. Thanks to Matt Sicker.=20 o LOG4J2-489: Fixed the JPAAppender's overuse of transactions by = connecting (borrowing from pool) on new write internal or on flush.=20 o LOG4J2-457: Fixed failure of JDBC and JPA appender to properly = release database connections by connecting (borrowing from pool) on new = write internal or on flush.=20 o LOG4J2-442: Fixed problem with JDBC and JPA appender connectivity in = WebSphere by connecting (borrowing from pool) on new write internal or = on flush.=20 o LOG4J2-438: Ensured the JDBCAppender commits transactions after a = single write or a flush of multiple writes.=20 o LOG4J2-407: Fixed inability to recover from lost database connection = in database appenders by connecting (borrowing from pool) on new write = internal or on flush.=20 o LOG4J2-500: (JMX) Unloading one webapp unloads JMX MBeans for all = webapps.=20 o LOG4J2-511: Stop AsyncLoggerConfig Disruptor thread(s), then = AsyncAppender thread(s) first before stopping other appenders. Thanks to = James Pretorius.=20 o LOG4J2-392: Stop AsyncLoggerConfig Disruptor thread(s), then = AsyncAppender thread(s) first before stopping other appenders. Thanks to = ilynaf, Andre Bogus.=20 o LOG4J2-345: (OSGi) logging.log4j-1.2-api doesn't export the log4j API = 1.2. Dependent bundles can not be resolved. Thanks to Roland Weiglhofer, = Matt Sicker.=20 o LOG4J2-523: LocalizedMessage serialization is broken.=20 o LOG4J2-385: Fixed issues with time-based file rollover (monthly, = weekly, hourly and every minute). Thanks to Ace Funk, Porfirio Partida.=20= o LOG4J2-452: Added a ServletContext attribute that, when set to = "true", disables Log4j's auto-initialization in Servlet 3.0+ web = applications.=20 o LOG4J2-512: Exposed Log4j web support interface and methods and the = LoggerContext through ServletContext attributes so that threads not = affected by filters (such as asynchronous threads) can utilize the = LoggerContext. Also updated the Log4j filter so that it supports async. = Thanks to Chandra Sekhar Kakarla, Matt Sicker.=20 o LOG4J2-409: Created a utility to properly escape backslashes before = creating URIs, and changed URI creation to use the utility instead of = instantiating URI directly. Thanks to Frank Steinmann, Thomas Neidhart.=20= o LOG4J2-344: Changed the Servlet 3.0 auto-initializer to add the = filter by class to get around a WebLogic bug. Thanks to Keir Lawson, = Tomasz Wladzinski.=20 o LOG4J2-359: Changed the Servlet 3.0 auto-initializer so that it does = nothing in a Servlet 2.5 or older application. This ensures behavioral = consistency across containers. This includes additional fixes to abort = initialization if a duplicate filter already exists and to check the = actual Servlet EFFECTIVE version. Thanks to Abhinav Shah.=20 o LOG4J2-517: Switch in log4j-1.2-api Category.getEffectiveLevel has no = cases for FATAL, OFF.=20 o LOG4J2-406: (JMX) Unregister all log4j JMX MBeans when the = LoggerContext is stopped to allow web application classes to be GC-ed on = undeploy. Thanks to Kerrigan Joseph.=20 o LOG4J2-405: Configuration was being processed twice at startup.=20 o LOG4J2-398: Configure properties and setup Interpolator before = processing rest of configuration.=20 o LOG4J2-470: hostName property was not being set until after the first = configuration element.=20 o LOG4J2-464: Support arrays as sub-elements of a JSON configuration.=20= o LOG4J2-492: (JMX) Fixed MalformedObjectNameException if context name = contains '=3D' or newline characters. Thanks to Shaddy Baddah, Herlani = Junior.=20 o LOG4J2-377: (OSGi) Fix NPE during shutdown. Thanks to Roland = Weiglhofer, Matt Sicker.=20 o LOG4J2-463: Fixed documentation for MyApp example application in the = Automatic Configuration section Thanks to Michael Diamond, Matt Sicker.=20= o LOG4J2-408: Fixed error in documentation code example in = manual/eventlogging.html Thanks to Dongqing Hu, Matt Sicker.=20 o LOG4J2-451: Fixed typo in documentation: system property should be = log4j2.loggerContextFactory Thanks to Vinay Pothnis, Matt Sicker.=20 o LOG4J2-443: Fixed issue where log4j2 LoggerContext did not show up in = JMX GUI or JConsole. Thanks to Colin Froggatt, Tudor Har.=20 o LOG4J2-485: Fixed issue where toString methods that perform logging = could deadlock AsyncAppender.=20 o LOG4J2-445: ResolverUtil cannot find packages in file URLs which = include the '+' character. Thanks to Anthony Baldocchi.=20 o LOG4J2-430: Use the formatted Message in RFC5424Layout for = non-StructuredDataMessages. Thanks to David Gstir.=20 o LOG4J2-459: Set external context when constructing the LoggerContext.=20= o LOG4J2-466: Cannot load log4j2 config file if path contains plus '+' = characters. Thanks to Jan Tepke.=20 o LOG4J2-462: Fix LogEvent to never return null Level, fixes = LevelPatternConverter.format may throw NPE. Thanks to Daisuke Baba.=20 o LOG4J2-465: Fix LogEvent to never return null Level, fixes = ThresholdFilter throws NPE. Thanks to Daisuke Baba.=20 o LOG4J2-471: Fixed issue where toString methods that perform logging = could deadlock AsyncLogger. Thanks to Anthony Baldocchi.=20 o LOG4J2-478: The message and ndc fields are not JavaScript escaped in = JSONLayout. Thanks to Michael Friedmann..=20 o LOG4J2-455: RingBufferLogEvent should return Message timestamp for = TimestampMessage messages. Thanks to Robin Zhang Tao.=20 o LOG4J2-477: NPE in ClassLoaderContextSelector. Thanks to Tal Liron.=20= o LOG4J2-454: TimeBasedTriggeringPolicy should use event time millis. = Thanks to Robin Zhang Tao.=20 o LOG4J2-472: BaseConfiguration class does not properly implement = Configuration interface. Thanks to Tal Liron.=20 o LOG4J2-447: XMLLayout does not include marker name. Thanks to Jeff = Hudren, Mark Paluch, Scott Deboy.=20 o LOG4J2-323: Resolved memory leak by releasing reference to = ThreadLocal when AsyncLogger is stopped.=20 o LOG4J2-425: Resolved memory leak by populating = AsyncLoggerConfigHelper ring buffer via EventTranslatorTwoArg, = eliminating the need for a ThreadLocal.=20 o LOG4J2-417: Fix Event Level / LoggerConfig Level table at the = architecture documentation page.=20 o LOG4J2-404: @EnterpriseNumber" was missing in the ID of structured = data when RFC5424Layout is used Thanks to Kamal Bahadur.=20 o LOG4J2-379: Fixed issue that prevented Log4J from working in Google = App Engine.=20 Changes: o Renamed the org.apache.logging.log4j.core.appender.db.nosql.mongo = package to org.apache.logging.log4j.core.appender.db.nosql.mongodb.=20 o Renamed the org.apache.logging.log4j.core.appender.db.nosql.couch = package to org.apache.logging.log4j.core.appender.db.nosql.couchdb.=20 o LOG4J2-41: Add support for custom logging levels. Thanks to Nick = Williams.=20 o LOG4J2-507: Space Level numbers by 100 instead of 1.=20 o LOG4J2-490: Update EasyMock to version 3.2. Thanks to Matt Sicker.=20 o LOG4J2-453: Update Flume Appender to use Flume 1.4.0.=20 o LOG4J2-528: Rename package = org.apache.logging.log4j.core.appender.rolling.helper to = org.apache.logging.log4j.core.appender.rolling.action. Please test and cast your votes. [ ] +1, release the artifacts [ ] -1, don't release because... The vote will remain open for 72 hours (or more if required). Tag: = http://svn.apache.org/viewvc/logging/log4j/log4j2/tags/log4j-2.0-rc1/ SVN revision: 1566106 Website: http://people.apache.org/~nickwilliams/log4j/ Artifacts: = https://repository.apache.org/content/repositories/orgapachelogging-1000/ The artifacts may be downloaded using wget -e robots=3Doff --cut-dirs=3D3 -r -p -np --no-check-certificate = https://repository.apache.org/content/repositories/orgapachelogging-1000/o= rg/apache/logging/log4j/ Description: 2.0-rc1 rc1 Details: The following artifacts have been staged to the org.apache.logging-1000 = (u:nickwilliams, a:69.180.246.95) repository. archetype-catalog.xml log4j-jmx-gui-2.0-rc1-javadoc.jar log4j-jmx-gui-2.0-rc1.jar log4j-jmx-gui-2.0-rc1-sources.jar log4j-jmx-gui-2.0-rc1.jar.asc log4j-jmx-gui-2.0-rc1-javadoc.jar.asc log4j-jmx-gui-2.0-rc1-sources.jar.asc log4j-jmx-gui-2.0-rc1.pom.asc log4j-jmx-gui-2.0-rc1.pom log4j-slf4j-impl-2.0-rc1-javadoc.jar.asc log4j-slf4j-impl-2.0-rc1.jar.asc log4j-slf4j-impl-2.0-rc1-javadoc.jar log4j-slf4j-impl-2.0-rc1.jar log4j-slf4j-impl-2.0-rc1-sources.jar log4j-slf4j-impl-2.0-rc1-sources.jar.asc log4j-slf4j-impl-2.0-rc1.pom.asc log4j-slf4j-impl-2.0-rc1.pom log4j-samples-2.0-rc1.pom log4j-samples-2.0-rc1.pom.asc log4j-samples-flume-common-2.0-rc1-sources.jar.asc log4j-samples-flume-common-2.0-rc1.jar log4j-samples-flume-common-2.0-rc1.pom.asc log4j-samples-flume-common-2.0-rc1-javadoc.jar.asc log4j-samples-flume-common-2.0-rc1-javadoc.jar log4j-samples-flume-common-2.0-rc1.pom log4j-samples-flume-common-2.0-rc1-sources.jar log4j-samples-flume-common-2.0-rc1.jar.asc log4j-jcl-2.0-rc1-javadoc.jar log4j-jcl-2.0-rc1.jar log4j-jcl-2.0-rc1-javadoc.jar.asc log4j-jcl-2.0-rc1.pom log4j-jcl-2.0-rc1-sources.jar log4j-jcl-2.0-rc1-sources.jar.asc log4j-jcl-2.0-rc1.jar.asc log4j-jcl-2.0-rc1.pom.asc log4j-taglib-2.0-rc1-javadoc.jar log4j-taglib-2.0-rc1.jar.asc log4j-taglib-2.0-rc1.pom.asc log4j-taglib-2.0-rc1-sources.jar log4j-taglib-2.0-rc1-sources.jar.asc log4j-taglib-2.0-rc1-javadoc.jar.asc log4j-taglib-2.0-rc1.jar log4j-taglib-2.0-rc1.pom log4j-core-osgi-jpa-2.0-rc1.pom.asc log4j-core-osgi-jpa-2.0-rc1.jar.asc log4j-core-osgi-jpa-2.0-rc1.pom log4j-core-osgi-jpa-2.0-rc1.jar log4j-osgi-2.0-rc1.pom.asc log4j-osgi-2.0-rc1.pom log4j-core-osgi-nosql-couch-2.0-rc1.jar.asc log4j-core-osgi-nosql-couch-2.0-rc1.pom log4j-core-osgi-nosql-couch-2.0-rc1.pom.asc log4j-core-osgi-nosql-couch-2.0-rc1.jar log4j-core-osgi-reduced-2.0-rc1.pom.asc log4j-core-osgi-reduced-2.0-rc1.jar.asc log4j-core-osgi-reduced-2.0-rc1.pom log4j-core-osgi-reduced-2.0-rc1.jar log4j-core-osgi-net-2.0-rc1.jar log4j-core-osgi-net-2.0-rc1.jar.asc log4j-core-osgi-net-2.0-rc1.pom log4j-core-osgi-net-2.0-rc1.pom.asc log4j-core-osgi-nosql-mongo-2.0-rc1.pom.asc log4j-core-osgi-nosql-mongo-2.0-rc1.jar log4j-core-osgi-nosql-mongo-2.0-rc1.jar.asc log4j-core-osgi-nosql-mongo-2.0-rc1.pom log4j-core-osgi-async-2.0-rc1.pom log4j-core-osgi-async-2.0-rc1.pom.asc log4j-core-osgi-async-2.0-rc1.jar.asc log4j-core-osgi-async-2.0-rc1.jar log4j-distribution-2.0-rc1-bin.tar.gz.asc log4j-distribution-2.0-rc1-bin.zip log4j-distribution-2.0-rc1.pom log4j-distribution-2.0-rc1-src.tar.gz log4j-distribution-2.0-rc1-bin.zip.asc log4j-distribution-2.0-rc1.pom.asc log4j-distribution-2.0-rc1-osgi-bin.zip log4j-distribution-2.0-rc1-osgi-bin.zip.asc log4j-distribution-2.0-rc1-osgi-bin.tar.gz log4j-distribution-2.0-rc1-src.zip log4j-distribution-2.0-rc1-osgi-bin.tar.gz.asc log4j-distribution-2.0-rc1-src.tar.gz.asc log4j-distribution-2.0-rc1-src.zip.asc log4j-distribution-2.0-rc1-bin.tar.gz log4j-1.2-api-2.0-rc1-javadoc.jar log4j-1.2-api-2.0-rc1-javadoc.jar.asc log4j-1.2-api-2.0-rc1.jar.asc log4j-1.2-api-2.0-rc1.jar log4j-1.2-api-2.0-rc1.pom.asc log4j-1.2-api-2.0-rc1.pom log4j-1.2-api-2.0-rc1-sources.jar log4j-1.2-api-2.0-rc1-sources.jar.asc log4j-flume-ng-2.0-rc1.pom.asc log4j-flume-ng-2.0-rc1-sources.jar.asc log4j-flume-ng-2.0-rc1-tests.jar.asc log4j-flume-ng-2.0-rc1-tests.jar log4j-flume-ng-2.0-rc1.jar log4j-flume-ng-2.0-rc1-sources.jar log4j-flume-ng-2.0-rc1.pom log4j-flume-ng-2.0-rc1-javadoc.jar.asc log4j-flume-ng-2.0-rc1.jar.asc log4j-flume-ng-2.0-rc1-javadoc.jar log4j-to-slf4j-2.0-rc1-sources.jar.asc log4j-to-slf4j-2.0-rc1.jar.asc log4j-to-slf4j-2.0-rc1.pom log4j-to-slf4j-2.0-rc1-javadoc.jar log4j-to-slf4j-2.0-rc1-sources.jar log4j-to-slf4j-2.0-rc1-javadoc.jar.asc log4j-to-slf4j-2.0-rc1.pom.asc log4j-to-slf4j-2.0-rc1.jar log4j-api-2.0-rc1.jar log4j-api-2.0-rc1.pom log4j-api-2.0-rc1-tests.jar log4j-api-2.0-rc1-tests.jar.asc log4j-api-2.0-rc1-javadoc.jar.asc log4j-api-2.0-rc1.pom.asc log4j-api-2.0-rc1-sources.jar.asc log4j-api-2.0-rc1.jar.asc log4j-api-2.0-rc1-sources.jar log4j-api-2.0-rc1-javadoc.jar log4j-core-2.0-rc1.jar log4j-core-2.0-rc1.pom log4j-core-2.0-rc1-javadoc.jar.asc log4j-core-2.0-rc1.jar.asc log4j-core-2.0-rc1-javadoc.jar log4j-core-2.0-rc1.pom.asc log4j-core-2.0-rc1-sources.jar log4j-core-2.0-rc1-sources.jar.asc log4j-core-2.0-rc1-tests.jar.asc log4j-core-2.0-rc1-tests.jar log4j-2.0-rc1.pom log4j-2.0-rc1.pom.asc= --Apple-Mail=_72C40575-0CC2-4B38-BC00-501B45639AEC Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii o LOG4J2-481:  Add Stream interface = to Loggers. Thanks to Matt Sicker. 
o LOG4J2-482: =  Documentation fix: The attribute of Route to refer to an appender = is "ref" not "AppenderRef". Thanks to Hongdi Ren. 
o LOG4J2-467: =  Added option to toggle Thread name caching in AsyncLogger. Thanks = to Anthony Baldocchi. 
o LOG4J2-423:  Added MBeans for = instrumenting AsyncAppenders and AsyncLogger RingBuffers, exposing = queue size, remaining capacity and other attributes. 
o = LOG4J2-420:  Create a lookup for resource bundle = substitution. 
o LOG4J2-415:  Format log event time as UNIX = time (seconds or milliseconds). 
o LOG4J2-401:  Configure = FileAppender buffer size. 
o LOG4J2-402:  Configure = RandomAccessFileAppender buffer size. 

Fixed Bugs:
o = LOG4J2-475:  Changed the MongoDBConnection to add a MongoDB = encoding hook instead of a decoding hook. Thanks to Matt = Sicker. 
o LOG4J2-489:  Fixed the JPAAppender's overuse of = transactions by connecting (borrowing from pool) on new write internal = or on flush. 
o LOG4J2-457:  Fixed failure of JDBC and = JPA appender to properly release database connections by connecting = (borrowing from pool) on new write internal or on flush. 
o = LOG4J2-442:  Fixed problem with JDBC and JPA appender connectivity = in WebSphere by connecting (borrowing from pool) on new write = internal or on flush. 
o LOG4J2-438:  Ensured the = JDBCAppender commits transactions after a single write or a flush of = multiple writes. 
o LOG4J2-407:  Fixed inability to recover = from lost database connection in database appenders by connecting = (borrowing from pool) on new write internal or on flush. 
o = LOG4J2-500:  (JMX) Unloading one webapp unloads JMX MBeans for all = webapps. 
o LOG4J2-511:  Stop AsyncLoggerConfig Disruptor = thread(s), then AsyncAppender thread(s) first before stopping other = appenders. Thanks to James Pretorius. 
o LOG4J2-392:  Stop = AsyncLoggerConfig Disruptor thread(s), then AsyncAppender thread(s) = first before stopping other appenders. Thanks to ilynaf, Andre = Bogus. 
o LOG4J2-345:  (OSGi) logging.log4j-1.2-api doesn't = export the log4j API 1.2. Dependent bundles can not be resolved. Thanks = to Roland Weiglhofer, Matt Sicker. 
o LOG4J2-523: =  LocalizedMessage serialization is broken. 
o LOG4J2-385: =  Fixed issues with time-based file rollover (monthly, weekly, = hourly and every minute). Thanks to Ace Funk, Porfirio = Partida. 
o LOG4J2-452:  Added a ServletContext attribute = that, when set to "true", disables Log4j's auto-initialization = in Servlet 3.0+ web applications. 
o LOG4J2-512: =  Exposed Log4j web support interface and methods and the = LoggerContext through ServletContext attributes so that threads not = affected by filters (such as asynchronous threads) can utilize the = LoggerContext. Also updated the Log4j filter so that it supports = async. Thanks to Chandra Sekhar Kakarla, Matt Sicker. 
o = LOG4J2-409:  Created a utility to properly escape backslashes = before creating URIs, and changed URI creation to use the utility = instead of instantiating URI directly. Thanks to Frank Steinmann, Thomas = Neidhart. 
o LOG4J2-344:  Changed the Servlet 3.0 = auto-initializer to add the filter by class to get around a WebLogic = bug. Thanks to Keir Lawson, Tomasz Wladzinski. 
o LOG4J2-359: =  Changed the Servlet 3.0 auto-initializer so that it does nothing = in a Servlet 2.5 or older application. This ensures behavioral = consistency across containers. This includes additional fixes to abort = initialization if a duplicate filter already exists and to check = the actual Servlet EFFECTIVE version. Thanks to Abhinav Shah. 
o = LOG4J2-517:  Switch in log4j-1.2-api Category.getEffectiveLevel has = no cases for FATAL, OFF. 
o LOG4J2-406:  (JMX) Unregister = all log4j JMX MBeans when the LoggerContext is stopped to allow web = application classes to be GC-ed on undeploy. Thanks to Kerrigan = Joseph. 
o LOG4J2-405:  Configuration was being processed = twice at startup. 
o LOG4J2-398:  Configure properties and = setup Interpolator before processing rest of configuration. 
o = LOG4J2-470:  hostName property was not being set until after the = first configuration element. 
o LOG4J2-464:  Support arrays = as sub-elements of a JSON configuration. 
o LOG4J2-492: =  (JMX) Fixed MalformedObjectNameException if context name contains = '=3D' or newline characters. Thanks to Shaddy Baddah, Herlani = Junior. 
o LOG4J2-377:  (OSGi) Fix NPE during shutdown. = Thanks to Roland Weiglhofer, Matt Sicker. 
o LOG4J2-463: =  Fixed documentation for MyApp example application in the Automatic = Configuration section Thanks to Michael Diamond, Matt Sicker. 
o = LOG4J2-408:  Fixed error in documentation code example in = manual/eventlogging.html Thanks to Dongqing Hu, Matt Sicker. 
o = LOG4J2-451:  Fixed typo in documentation: system property should be = log4j2.loggerContextFactory Thanks to Vinay Pothnis, Matt = Sicker. 
o LOG4J2-443:  Fixed issue where log4j2 = LoggerContext did not show up in JMX GUI or JConsole. Thanks to Colin = Froggatt, Tudor Har. 
o LOG4J2-485:  Fixed issue where = toString methods that perform logging could deadlock = AsyncAppender. 
o LOG4J2-445:  ResolverUtil cannot find = packages in file URLs which include the '+' character. Thanks to Anthony = Baldocchi. 
o LOG4J2-430:  Use the formatted Message in = RFC5424Layout for non-StructuredDataMessages. Thanks to David = Gstir. 
o LOG4J2-459:  Set external context when = constructing the LoggerContext. 
o LOG4J2-466:  Cannot load = log4j2 config file if path contains plus '+' characters. Thanks to Jan = Tepke. 
o LOG4J2-462:  Fix LogEvent to never return null = Level, fixes LevelPatternConverter.format may throw NPE. Thanks to = Daisuke Baba. 
o LOG4J2-465:  Fix LogEvent to never return = null Level, fixes ThresholdFilter throws NPE. Thanks to Daisuke = Baba. 
o LOG4J2-471:  Fixed issue where toString methods = that perform logging could deadlock AsyncLogger. Thanks to Anthony = Baldocchi. 
o LOG4J2-478:  The message and ndc fields are = not JavaScript escaped in JSONLayout. Thanks to Michael = Friedmann.. 
o LOG4J2-455:  RingBufferLogEvent should = return Message timestamp for TimestampMessage messages. Thanks to Robin = Zhang Tao. 
o LOG4J2-477:  NPE in = ClassLoaderContextSelector. Thanks to Tal Liron. 
o LOG4J2-454: =  TimeBasedTriggeringPolicy should use event time millis. Thanks to = Robin Zhang Tao. 
o LOG4J2-472:  BaseConfiguration class = does not properly implement Configuration interface. Thanks to Tal = Liron. 
o LOG4J2-447:  XMLLayout does not include marker = name. Thanks to Jeff Hudren, Mark Paluch, Scott Deboy. 
o = LOG4J2-323:  Resolved memory leak by releasing reference to = ThreadLocal when AsyncLogger is stopped. 
o LOG4J2-425: =  Resolved memory leak by populating AsyncLoggerConfigHelper ring = buffer via EventTranslatorTwoArg, eliminating the need for a = ThreadLocal. 
o LOG4J2-417:  Fix Event Level / LoggerConfig = Level table at the architecture documentation page. 
o = LOG4J2-404:  @EnterpriseNumber" was missing in the ID of structured = data when RFC5424Layout is used Thanks to Kamal Bahadur. 
o = LOG4J2-379:  Fixed issue that prevented Log4J from working in = Google App Engine. 

Changes:
o Renamed the = org.apache.logging.log4j.core.appender.db.nosql.mongo package = to org.apache.logging.log4j.core.appender.db.nosql.mongodb. 
= o Renamed the org.apache.logging.log4j.core.appender.db.nosql.couch = package = to org.apache.logging.log4j.core.appender.db.nosql.couchdb. 
= o LOG4J2-41:  Add support for custom logging levels. Thanks to Nick = Williams. 
o LOG4J2-507:  Space Level numbers by 100 = instead of 1. 
o LOG4J2-490:  Update EasyMock to version = 3.2. Thanks to Matt Sicker. 
o LOG4J2-453:  Update Flume = Appender to use Flume 1.4.0. 
o LOG4J2-528:  Rename package = org.apache.logging.log4j.core.appender.rolling.helper to = org.apache.logging.log4j.core.appender.rolling.action.
Please test and cast your votes.
[ ] +1, release = the artifacts
[ ] -1, don't release = because...

The vote will remain open for 72 = hours (or more if = required).


SVN revision: = 1566106



The artifacts may be downloaded = using
wget -e robots=3Doff --cut-dirs=3D3 -r -p -np = --no-check-certificate https://repository.apache.org/content/re= positories/orgapachelogging-1000/org/apache/logging/log4j/
<= br>
Description:

2.0-rc1 rc1


The following artifacts have been = staged to the org.apache.logging-1000 (u:nickwilliams, = a:69.180.246.95) repository.
<= div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; font-style: normal; font-variant: normal; font-weight: = normal; font-size: 12px; line-height: normal; font-family: Helvetica; = color: rgb(0, 106, 227); letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; ">log4j-jmx-gui-2.0-rc1-sources.jar.asc
<= div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; font-style: normal; font-variant: normal; font-weight: = normal; font-size: 12px; line-height: normal; font-family: Helvetica; = color: rgb(0, 106, 227); letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; ">log4j-jmx-gui-2.0-rc1.pom.asc= = log4j-taglib-2.0-rc1-javadoc.jar.asclog4j-taglib-2.0-rc1.jarlog4j-core-osgi-jpa-2.0-rc1.jarlog4j-osgi-2.0-rc1.pom.asclog4j-core-osgi-net-2.0-rc1.jar.asc= log4j-core-osgi-net-2.0-rc1.pom.asc=
log4j-distribution-2.0-rc1-bin.tar.gz<= div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; font-style: normal; font-variant: normal; font-weight: = normal; font-size: 12px; line-height: normal; font-family: Helvetica; = color: rgb(0, 106, 227); letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; ">log4j-1.2-api-2.0-rc1.jar.asc
<= div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; = margin-left: 0px; font-style: normal; font-variant: normal; font-weight: = normal; font-size: 12px; line-height: normal; font-family: Helvetica; = color: rgb(0, 106, 227); letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; ">log4j-flume-ng-2.0-rc1.pom.asc
log4j-flume-ng-2.0-rc1-javadoc.jar.asc
log4j-to-slf4j-2.0-rc1-sources.jar.asc= --Apple-Mail=_72C40575-0CC2-4B38-BC00-501B45639AEC--