Apache Log4j 2.0-rc2 發布，此版本更新內容如下：
新特性： 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. Bug 修復： 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. 系統改進： 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.
Log4j是Apache的一個開放源代碼項目，通過使用Log4j，我們可以控制日誌信息輸送的目的地是控制台、文件、GUI組件、甚至是套介面服務 器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌信息的級別，我們能夠更加細緻地控制日誌的生成過程。最令人感興趣的就 是，這些可以通過一個配置文件來靈活地進行配置，而不需要修改應用的代碼。
[火星人 ] Apache Log4j 2.0-rc2 發布已經有 次圍觀