| |
| Apache Log4j 2.0-rc1 RELEASE NOTES |
| |
| The Apache Log4j 2 team is pleased to announce the Log4j 2.0-rc1 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 of the improvements available in Logback while fixing some inherent problems in Logback's |
| architecture. |
| |
| This is the eleventh release of Log4j 2 and is being made available to encourage use and feedback from the community. |
| |
| Bug fixes and enhancements |
| |
| 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-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 '=' 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. |
| |
| |
| Apache Log4j 2.0-rc1 requires a minimum of Java 6 to build and run. 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/ |
| |
| |