+1 (License headers all ok, all unit tests pass, site looks ok, user-guide PDF is ok, artifacts ok...)
Great job, Nick! On Monday, February 10, 2014, Nick Williams <[email protected]> wrote: > *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. > o LOG4J2-479: ThreadContext now uses plain ThreadLocal by default, unless > system property isThreadContextMapInheritable has value "true". Thanks to > MK. > 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-500: (JMX - ObjectNames changed!) Unloading one web application > unloads JMX MBeans for all web applications. > o LOG4J2-531: Fixed bugs where rolled log files were overwritten by > RollingFile appender with composite time and size based policies. Thanks to > Geoff Ballinger. > 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-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 '=' 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-507: Space Level numbers by 100 instead of 1. > o LOG4J2-41: Add support for custom logging levels. Thanks to Nick > Williams. > 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. > o LOG4J2-532: Resource leak in Flume appender when it cannot create a > BerkeleyDB db. > > *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:* 1566354 > > *Website:* http://people.apache.org/~nickwilliams/log4j/ > > *Artifacts:* > https://repository.apache.org/content/repositories/orgapachelogging-1002/ > > The artifacts may be downloaded using > wget -e robots=off --cut-dirs=3 -r -p -np --no-check-certificate > https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/ > > *Description:* > > 2.0-rc1 RC2 > > *Details:* > > The following artifacts have been staged to the org.apache.logging-1002 > (u:nickwilliams, > a:69.180.246.95)<https://repository.apache.org/content/repositories/orgapachelogging-1002> > repository. > > archetype-catalog.xml<https://repository.apache.org/content/repositories/orgapachelogging-1002/archetype-catalog.xml> > log4j-jmx-gui-2.0-rc1-javadoc.jar<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1-javadoc.jar> > log4j-jmx-gui-2.0-rc1.jar<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1.jar> > log4j-jmx-gui-2.0-rc1-sources.jar<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1-sources.jar> > log4j-jmx-gui-2.0-rc1.jar.asc<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1.jar.asc> > log4j-jmx-gui-2.0-rc1-javadoc.jar.asc<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1-javadoc.jar.asc> > log4j-jmx-gui-2.0-rc1-sources.jar.asc<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1-sources.jar.asc> > log4j-jmx-gui-2.0-rc1.pom.asc<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1.pom.asc> > *log4j-jmx-gui-2.0-rc1.pom > <https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-jmx-gui/2.0-rc1/log4j-jmx-gui-2.0-rc1.pom>* > log4j-slf4j-impl-2.0-rc1-javadoc.jar.asc<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-slf4j-impl/2.0-rc1/log4j-slf4j-impl-2.0-rc1-javadoc.jar.asc> > log4j-slf4j-impl-2.0-rc1.jar.asc<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-slf4j-impl/2.0-rc1/log4j-slf4j-impl-2.0-rc1.jar.asc> > log4j-slf4j-impl-2.0-rc1-javadoc.jar<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-slf4j-impl/2.0-rc1/log4j-slf4j-impl-2.0-rc1-javadoc.jar> > log4j-slf4j-impl-2.0-rc1.jar<https://repository.apache.org/content/repositories/orgapachelogging-1002/org/apache/logging/log4j/log4j-slf4j-impl/2.0-rc1/log4j-slf4j-impl-2.0-rc1.jar> >
