2.0-rc2 (2014-06-21)
Changes
Added
-
Add support for configuration via YAML. (for LOG4J2-427 by Ralph Goers, Alexander Reelsen)
-
Create an appender to route log events to the ServletContext log. (for LOG4J2-42 by Ralph Goers)
-
Add EncodingPatternConverter to escape newlines and HTML special characters. (for LOG4J2-439 by Ralph Goers, Bruce Brouwer)
-
Add org.apache.logging.log4j.Logger.getLevel(). (for LOG4J2-576 by Gary Gregory)
-
Introduce Java annotation processor as the new plugin pre-caching mechanism. This is available in log4j-core. All custom plugins created before this should be re-built against the current log4j-core. (for LOG4J2-595 by Matt Sicker)
-
Add support for types other than String for plugin factory values/attributes. (for LOG4J2-598 by Matt Sicker)
-
Document the system properties used in Log4J 2. (for LOG4J2-629 by Remko Popma)
-
Implement a SecureSocketAppender and secure server (SSL/TLS). (for LOG4J2-644 by Gary Gregory)
-
Add support for default plugin values and attributes. (for LOG4J2-652 by Matt Sicker)
-
Add log4j-perf module to provide a home for all log4j performance tests. Add support for JMH microbenchmark performance tests. (for LOG4J2-654 by Remko Popma)
-
Add Vagrantfile for testing in GNU+Linux. (for LOG4J2-655 by Matt Sicker)
-
Made RollingFileAppender buffer size configurable. (for LOG4J2-674 by Remko Popma)
-
RollingFile and RollingRandomAccessFile now write the layout footer before rollover. (for LOG4J2-675 by Remko Popma)
Changed
-
Refactor Log4jLogEvent to lazily create ThrowableProxy. (for LOG4J2-250 by Remko Popma)
-
SLf4JLogger is now Serializable. (for LOG4J2-410 by Ralph Goers, Ivlin Zeng)
-
Support default value for missing key in look-ups with fallback to looking in the properties map. (for LOG4J2-419 by Ralph Goers, Woonsan Ko)
-
Add support to add a LoggerConfig. Document two ways to modify the configuration. (for LOG4J2-468 by Ralph Goers)
-
Allow header and footer to be specified as lookup patterns in PatternLayout. (for LOG4J2-496 by Ralph Goers)
-
Have Logger API expose a PrintWriter instead of custom LoggerStream. (for LOG4J2-547 by Ralph Goers, Bruce Brouwer)
-
Allow configuration files to be located as Servlet Context resources. (for LOG4J2-554 by Ralph Goers)
-
Introduce ExtendedLogger interface to facilitate implementing and extending Loggers. (for LOG4J2-555 by Remko Popma, Bruce Brouwer)
-
Allow spaces around commas in Configuration’s package attribute. (for LOG4J2-561 by Gary Gregory, vibin)
-
Made RollingRandomAccessFileAppender buffer size configurable. (for LOG4J2-566 by Remko Popma, Luigi Alice)
-
Make Blocking the default WaitStrategy for Async Loggers. (for LOG4J2-574 by Remko Popma)
-
Rename org.apache.logging.log4j.core.net.SocketServer to TCPSocketServer and refactor with UDP. (for LOG4J2-582 by Gary Gregory)
-
Add support for multiple parents to Markers. (for LOG4J2-585 by Ralph Goers, Bruce Brouwer)
-
Update Jackson to 2.3.2 from 2.2.2. (for LOG4J2-592 by Gary Gregory)
-
Update Jackson to 2.3.3. (for LOG4J2-616 by Matt Sicker)
-
Update SLF4J to 1.7.7. (for LOG4J2-617 by Matt Sicker)
-
Use Clock to generate all log event timestamps, not just for Async Loggers. (for LOG4J2-628 by Remko Popma)
-
Override commons-logging dependency version in tests. (for LOG4J2-641 by Matt Sicker)
-
Merge the TLS Syslog appender into the Syslog appender. (for LOG4J2-646 by Gary Gregory)
-
Upgrade to Flume 1.5.0. (for LOG4J2-647 by Gary Gregory)
Fixed
-
Improved documentation regarding log4j status logger. (for LOG4J2-141 by Remko Popma, Joern Huxhorn)
-
The log4j-1.2-api module didn’t export any packages to OSGi. (for LOG4J2-345 by Matt Sicker)
-
Cyclic dependency with log4j-slf4j-impl in OSGi. (for LOG4J2-346 by Matt Sicker)
-
Add DateLookup and ThreadContextLookup to default lookups. (for LOG4J2-378 by Ralph Goers)
-
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. (for LOG4J2-392 by Remko Popma, Andre Bogus)
-
During shutdown, a NullPointerException could be thrown due to the NullConfiguration class no longer being available to the ClassLoader. (for LOG4J2-440 by Matt Sicker)
-
A StringIndexOutOfBounds exception could occur during property substitution. (for LOG4J2-448 by Ralph Goers, X86core)
-
FailoverAppender was not resetting its status after the primary appender recovered. (for LOG4J2-469 by Ralph Goers)
-
Add equals and hashcode to Log4jLogEvent. (for LOG4J2-499 by Ralph Goers)
-
Resolved issue where AsyncAppender dropped events if queue still contained events when application is stopped. (for LOG4J2-520 by Remko Popma, JavaTech, Andre Bogus)
-
Reset rollover time when size rollover is triggered. (for LOG4J2-535 by Ralph Goers)
-
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. (for LOG4J2-539 by Remko Popma, Colin Froggatt)
-
Make Throwable transient in ThrowableProxy. (for LOG4J2-542 by Ralph Goers)
-
SyslogAppenderTest and RFC5424LayoutTest were failing in Java 8. (for LOG4J2-560 by Ralph Goers)
-
FlumeAvroManager now always uses a client type of default_failover. (for LOG4J2-563 by Ralph Goers, Michael Friedmann)
-
Renamed SLF4J logger class to Log4jLogger. (for LOG4J2-564 by Matt Sicker)
-
Fix shutdown thread memory leak in servlet containers. (for LOG4J2-570 by Matt Sicker)
-
Rework Level comparison APIs. (for LOG4J2-579 by Gary Gregory)
-
RollingRandomAccessFile now writes the layout header after rollover. (for LOG4J2-581 by Remko Popma, Alexander Khokhlov)
-
StatusLogger was not skipping multiple instances of the FQCN class, causing messages from classes in the Verbose list to be printed. (for LOG4J2-597 by Ralph Goers)
-
Unit tests are now less verbose during the build process. (for LOG4J2-602 by Ralph Goers)
-
Password data from the NoSQL plugins no longer shows up in cleartext in debug logging. (for LOG4J2-605 by Matt Sicker)
-
The OSGi version of log4j-web imports Servlet 2.5 at minimum instead of 3.0. (for LOG4J2-613 by Matt Sicker)
-
Invalid XML configuration files do not prevent the config file from being checked again. (for LOG4J2-619 by Ralph Goers, Scott Harrington)
-
Perform reconfiguration in a separate thread to prevent deadlocks. (for LOG4J2-620 by Ralph Goers)
-
RollingFileManager now correctly honours the bufferedIO configuration after rollover. (for LOG4J2-622 by Remko Popma, Farooq Khan)
-
Generate MDC properties as a JSON map in JSONLayout. (for LOG4J2-623 by Ralph Goers)
-
JMX: Updating a Logger’s level via jConsole now correctly takes effect. (for LOG4J2-637 by Remko Popma, Mansoor Sajjad, Jon Wilmoth)
-
Prevent NPE in AsyncLogger and AsyncLoggerConfig if logger is used after log4j has been shut down. (for LOG4J2-639 by Remko Popma, Mck SembWever)
-
Fix NPE that can be caused by a null ThreadContextClassLoader. (for LOG4J2-640 by Matt Sicker)
-
Log4j 2 throws ArrayIndexOutOfBoundsException. (for LOG4J2-651 by Gary Gregory)
-
Moved plugin cache file to META-INF for OSGi compatibility. (for LOG4J2-664 by Matt Sicker)
-
Correctly process log events when combining AsyncLoggers with AsyncAppender. (for LOG4J2-668 by Remko Popma)
-
Prevent NPE when combining AsyncLoggers with AsyncLoggerConfigs. (for LOG4J2-669 by Remko Popma)