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