The Apache Log4j 2 team is pleased to announce the Log4j 2.0-rc2 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.

It is the Log4j team's intention that this will be the final release candidate 
Log4j 2 before general availability and
is being made available to encourage use and feedback from the community.

Changes in this version include:

New features:
o LOG4J2-675:  RollingFile and RollingRandomAccessFile now write the layout 
footer before rollover. 
o LOG4J2-674:  Made RollingFileAppender buffer size configurable. 
o LOG4J2-42:  Create an appender to route log events to the ServletContext log. 
o LOG4J2-655:  Add Vagrantfile for testing in GNU+Linux. 
o LOG4J2-654:  Add log4j-perf module to provide a home for all log4j 
performance tests.
        Add support for JMH microbenchmark performance tests. 
o LOG4J2-652:  Add support for default plugin values and attributes. 
o LOG4J2-598:  Add support for types other than String for plugin factory 
values/attributes. 
o LOG4J2-644:  Implement a SecureSocketAppender and secure server (SSL/TLS). 
o LOG4J2-629:  Document the system properties used in Log4J 2. 
o LOG4J2-595:  Introduce Java annotation processor as alternative plugin 
pre-caching mechanism. This is available in the
          log4j-plugin-processor module. 
o LOG4J2-576:  Add org.apache.logging.log4j.Logger.getLevel(). 
o LOG4J2-439:  Add EncodingPatternConverter to escape newlines and HTML special 
characters. Thanks to Bruce Brouwer. 
o LOG4J2-427:  Add support for configuration via YAML. Thanks to Alexander 
Reelsen. 

Fixed Bugs:
o LOG4J2-581:  RollingRandomAccessFile now writes the layout header after 
rollover. Thanks to Alexander Khokhlov. 
o LOG4J2-622:  RollingFileManager now correctly honours the bufferedIO 
configuration after rollover. Thanks to Farooq Khan. 
o LOG4J2-141:  Improved documentation regarding log4j status logger. Thanks to 
Joern Huxhorn. 
o LOG4J2-539:  Fixed issue with "Reconfigure using XML below" function in JMX 
Client GUI.
        ConfigurationSource is now a top-level class and can be obtained with 
Configuration.getConfigurationSource().
        LoggerContext.getConfiguration().getConfigurationSource() 
        provides a reliable public method for obtaining a logger context's 
configuration location and content. Thanks to Colin Froggatt. 
o LOG4J2-619:  Invalid XML configuration files do not prevent the config file 
from being checked again. Thanks to Scott Harrington. 
o LOG4J2-637:  JMX: Updating a Logger's level via jConsole now correctly takes 
effect. Thanks to Mansoor Sajjad, Jon Wilmoth. 
o LOG4J2-668:  Correctly process log events when combining AsyncLoggers with 
AsyncAppender. 
o LOG4J2-669:  Prevent NPE when combining AsyncLoggers with AsyncLoggerConfigs. 
o LOG4J2-563:  FlumeAvroManager now always uses a client type of 
default_failover. Thanks to Michael Friedmann. 
o LOG4J2-535:  Reset rollover time when size rollover is triggered. 
o LOG4J2-664:  Moved plugin cache file to META-INF for OSGi compatibility. 
o LOG4J2-640:  Fix NPE that can be caused by a null ThreadContextClassLoader. 
o LOG4J2-651:  Log4j 2 throws ArrayIndexOutOfBoundsException. 
o LOG4J2-620:  Perform reconfiguration in a separate thread to prevent 
deadlocks. 
o LOG4J2-639:  Prevent NPE in AsyncLogger and AsyncLoggerConfig if logger is 
used after log4j has been shut down. Thanks to Mck SembWever. 
o LOG4J2-469:  FailoverAppender was not resetting its status after the primary 
appender recovered. 
o LOG4J2-623:  Generate MDC properties as a JSON map in JSONLayout. 
o LOG4J2-520:  Resolved issue where AsyncAppender dropped events if queue still 
contained
        events when application is stopped. Thanks to JavaTech, Andre Bogus. 
o LOG4J2-392:  Resolved a problem with the previous solution for LOG4J2-392 
that resulted in dropped events
        when using AsyncLoggerConfig with slow appenders when application is 
stopped. Thanks to Andre Bogus. 
o LOG4J2-613:  The OSGi version of log4j-web imports Servlet 2.5 at minimum 
instead of 3.0. 
o LOG4J2-602:  Unit tests are now less verbose during the build process. 
o LOG4J2-570:  Fix shutdown thread memory leak in servlet containers. 
o LOG4J2-542:  Make Throwable transient in ThrowableProxy. 
o LOG4J2-440:  During shutdown, a NullPointerException could be thrown due to 
the NullConfiguration class no longer being
        available to the ClassLoader. 
o LOG4J2-346:  Cyclic dependency with log4j-slf4j-impl in OSGi. 
o LOG4J2-345:  The log4j-1.2-api module didn't export any packages to OSGi. 
o LOG4J2-605:  Password data from the NoSQL plugins no longer shows up in 
cleartext in debug logging. 
o LOG4J2-448:  A StringIndexOutOfBounds exception could occur during property 
substitution. Thanks to X86core. 
o LOG4J2-597:  StatusLogger was not skipping multiple instances of the FQCN 
class, causing messages from classes in
        the Verbose list to be printed. 
o LOG4J2-564:  Renamed SLF4J logger class to Log4jLogger. 
o LOG4J2-579:  Rework Level comparison APIs. 
o LOG4J2-560:  SyslogAppenderTest and RFC5424LayoutTest were failing in Java 8. 
o LOG4J2-499:  Add equals and hashcode to Log4jLogEvent. 
o LOG4J2-378:  Add DateLookup and ThreadContextLookup to default lookups. 

Changes:
o LOG4J2-419:  Support default value for missing key in look ups with 
fallbacking to looking in the properties map. Thanks to Woonsan Ko. 
o LOG4J2-554:  Allow configuration files to be located as Servlet Context 
resources. 
o LOG4J2-250:  Refactor Log4jLogEvent to lazily create ThrowableProxy. 
o LOG4J2-647:  Upgrade to Flume 1.5.0. 
o LOG4J2-646:  Merge the TLS Syslog appender into the Syslog appender. 
o LOG4J2-641:  Override commons-logging dependency version in tests. 
o LOG4J2-566:  Made RollingRandomAccessFileAppender buffer size configurable. 
Thanks to Luigi Alice. 
o LOG4J2-628:  Use Clock to generate all log event timestamps, not just for 
Async Loggers. 
o LOG4J2-617:  Update SLF4J to 1.7.7. 
o LOG4J2-616:  Update Jackson to 2.3.3. 
o LOG4J2-585:  Add support for multiple parents to Markers. Thanks to Bruce 
Brouwer. 
o LOG4J2-574:  Make Blocking the default WaitStrategy for Async Loggers. 
o LOG4J2-555:  Introduce ExtendedLogger interface to facilitate implementing 
and extending Loggers. Thanks to Bruce Brouwer. 
o LOG4J2-561:  Allow spaces around commas in Configuration's package attribute. 
Thanks to vibin. 
o LOG4J2-547:  Have Logger API expose a PrintWriter instead of custom 
LoggerStream. Thanks to Bruce Brouwer. 
o LOG4J2-496:  Allow header and footer to be specified as lookup patterns in 
PatternLayout. 
o LOG4J2-410:  SLf4JLogger is now Serializable. Thanks to Ivlin Zeng. 
o LOG4J2-468:  Add support to add a LoggerConfig. Document two ways to modify 
the configuration. 
o LOG4J2-582:  Rename org.apache.logging.log4j.core.net.SocketServer to 
TCPSocketServer and refactor with UDP. 
o LOG4J2-592:  Update Jackson to 2.3.2 from 2.2.2. 


Apache Log4j 2.0-rc2 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/
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to