2.0-beta9

Release date

2013-09-14

Added

  • Added FAQ page to the site. (LOG4J2-253)

  • Ease porting from 1.x Logger.getRootLogger(): add LogManager.getRootLogger(). (LOG4J2-305)

  • Add JNDILookup plugin. (LOG4J2-313)

  • Add TLSAppender. Also added missing license headers to several files. (LOG4J2-338)

  • Enable XInclude for XML configurations. (LOG4J2-341)

  • Create a JSON Layout. (LOG4J2-356)

  • Allow Plugins to have aliases. (LOG4J2-360)

  • Add a diagram to the site (FAQ page) that explains when to use which jar. (LOG4J2-362)

  • Add WebLookup to retrieve information from the ServletContext. (LOG4J2-364)

  • Add more options to PatternLayout to display more detailed information about a Throwable. (LOG4J2-374)

  • [Pattern Layout] Customize level names by length. (LOG4J2-383)

  • [Pattern Layout] Customize level names to lower-case. (LOG4J2-384)

  • Allow the default file rollover strategy to define the compression level. (LOG4J2-399)

Changed

  • Changed the (relatively new) PatternLayout configuration attribute "suppressExceptions" to "alwaysWriteExceptions" to more correctly indicate what it does. As such, the meaning of this attribute has reversed (previous "true"s should become "false"s, and vice versa). Since this was an undocumented attribute up until now, it’s unlikely this change will affect any users.

  • Changed the "suppressExceptions" configuration attribute for all Appenders to "ignoreExceptions" to avoid confusion with Java 7 suppressed exceptions. Also renamed the Appender#isExceptionSuppressed() method to Appender#ignoreExceptions() to avoid the same confusion. All Appenders by default internally log and then ignore exceptions encountered while logging. Setting "ignoreExceptions" to "false" on an Appender causes it to allow exceptions to propagate to the caller. You must set "ignoreExceptions" to "false" for Appenders you are wrapping in the Failover Appender.

  • Cleaned up tests and cleared up documentation for the JPA appender following the resolution of EclipseLink issue #412454.

  • Improved site by adding quick jump-off page and menu for Javadoc links for all components.

  • Update JSON Jackson library to 2.2.2 from 2.2.1. (LOG4J2-306)

  • Updated Async Loggers' LMAX Disruptor library from 3.0.1 to 3.2.0. (LOG4J2-307)

  • Clarified which library versions were used in Async Loggers performance test. (LOG4J2-308)

  • XML layout improvements (compact vs. pretty, namespace, namespace prefix, root element). (LOG4J2-312)

  • Renamed FastFileAppender and FastRollingFileAppender to RandomAccessFileAppender and RollingRandomAccessFileAppender. Configurations using the Fast(Rolling)File element no longer work and should be modified to use the (Rolling)RandomAccessFile element. (LOG4J2-317)

  • Allow shutdown hook to be disabled in the configuration. (LOG4J2-318)

  • Update JDBC tests to use H2 database 1.3.173 from 1.3.172. (LOG4J2-325)

  • Add support for multiple SD-ELEMENTs in an RFC 5424 syslog message. (LOG4J2-355)

  • Update commons-logging to 1.1.3 from 1.1.1. (LOG4J2-366)

  • Update Jackson dependency to 1.9.13 from 1.9.11. (LOG4J2-387)

  • Update Java Mail dependency to 1.5.0 from 1.4.7. (LOG4J2-388)

  • Update HSQLDB dependency to 2.3.0 from 2.2.9. (LOG4J2-390)

Fixed

  • The slf4j-ext jar is now an optional dependency of the SLF4J bridge. (LOG4J2-165)

  • RoutingAppender’s default Route can now be an appender reference. (LOG4J2-166)

  • ThrowableProxy no longer extends Throwable. (LOG4J2-216)

  • Fix table of contents generation in pdf. (LOG4J2-226)

  • Additional fix to make AsyncAppender threads daemon threads and improve their thread name. (LOG4J2-280)

  • Fixed JDBC, JPA, and NoSQL appenders so that the failover appender properly fails over on error. (LOG4J2-291)

  • Changed the ConfigurationFactory to recognize and properly use the classpath: URI scheme in addition to the classloader: URI scheme. (LOG4J2-293)

  • Reset the Configuration if the ClassLoaderContextSelector creates a LoggerContext without a configuration location and then is later provided one. (LOG4J2-293)

  • Add getThrowable method to ThrowableProxy. (LOG4J2-299)

  • Fixed Async Loggers memory leak. (LOG4J2-304)

  • Insure jars and distributions only have a single License and Notice file. (LOG4J2-309)

  • Fixed issue where SMTPAppender did not send mails with error or fatal level without prior info event. (LOG4J2-310)

  • Synchronized flush() and close() methods in the XxxFileManager and OutputStreamManager classes. (LOG4J2-311)

  • Double stack trace logging when using %throwable in %style and %highlight. (LOG4J2-319)

  • JPAAppender stops logging because META-INF/log4j-provider.properties is left open. (LOG4J2-320)

  • Centralized reflective use of Reflection#getCallerClass and properly handled its instability in various versions of Java. (LOG4J2-322)

  • FlumePersistentManager was calling Berkeley DB’s count method too frequently. (LOG4J2-328)

  • StatusLogger now only creates StatusData objects if they are the appropriate logging level. (LOG4J2-329)

  • Added a BSON Transformer so that MongoDB can persist Log4j events. (LOG4J2-330)

  • Removed erroneous check for affected MongoDB records, which always returns zero on inserts. (LOG4J2-331)

  • Modified documentation to refer to SLF4J Binding instead of SLF4J Bridge. (LOG4J2-332)

  • Match artifact ids with Maven module names. (LOG4J2-333)

  • FlumePersistentManager’s writer thread had high CPU usage. (LOG4J2-335)

  • AsyncLogger errors after multiple calls to LoggerContext.reconfigure(). (LOG4J2-336)

  • Ignore xml:base attributes. (LOG4J2-342)

  • Removed unnecessary generics from Appender interface and implementing classes. (LOG4J2-343)

  • Give the AsyncAppender thread a more descriptive name for easier debugging/profiling. (LOG4J2-347)

  • [OSGi] wrong Fragment-Host in manifest files. (LOG4J2-351)

  • NoSQLAppender using MongoDB provider ignores username and password attributes (LOG4J2-358)

  • 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. (LOG4J2-359)

  • JMS appenders send two messages for one append. (LOG4J2-367)

  • Add PatternLayout constructor to Log4j 1.2 bridge for Velocity. (LOG4J2-368)

  • Use rollover date when substituting ${date} in the filePattern. (LOG4J2-380)

  • FlumePersistentManager now handles LockConflictExceptions in Berkeley Db. (LOG4J2-391)

  • Initialize PluginManager once during configuration. Move advertisement setup into BaseConfiguration. (LOG4J2-393)

  • Allow classpath scheme when specifying configuration file location as a system property. (LOG4J2-395)

  • Logger.info(Message) Javadoc is incorrect. (LOG4J2-397)