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守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就 是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
项目主页:http://logging.apache.org/log4j/2.x/
下载地址:http://logging.apache.org/log4j/1.2/download.html
来自:开源中国社区

