Log4j 2.5 发布,Java 日志组件

来源: OSCHINA
编辑: oschina
2015-12-12

Log4j 2.5 发布,此版本是第九个 GA 版本,包括一些 bug 修复和新特性。新特性包括在 file rollover 的时候指定删除操作;一个基于 CRON 的触发策略;过滤器支持 JSR 223 脚本,模式选择器和删除操作,新增一个策略移除 RoutingAppender 的闲置输出源。

Log4j 2 最低要求 Java 7。

Log4j 2.5 改进列表:

新特性:
o LOG4J2-435:  Added support for custom delete actions triggered by a rollover. Thanks to
Robert Schaft.
o LOG4J2-89:  Allow rollover to occur at any time. Add CronTriggeringPolicy.
o LOG4J2-1136:  Add support for JSR 223 scripts in filters and the PatternSelector.
o LOG4J2-1168:  Add getters for source and destination file in file rename action. Thanks
to Steven Swor.
o LOG4J2-1175:  Add getters for classes in org.apache.logging.log4j.core.appender.rolling.action.
o LOG4J2-898:  Added system property to allow users to control whether messages should be
formatted in the background.
o LOG4J2-1178:  Support use-case for JDBC's CommonDataSource.setLogWriter(PrintWriter) and
java.sql.DriverManager.setLogWriter(PrintWriter).
o LOG4J2-1187:  Support use case for java.sql.DriverManager.setLogStream(PrintStream).

Bugs 修复:
o LOG4J2-324:  Reduced memory usage of status messages in bounded queue; support zero-length
queue that stores no messages.
o LOG4J2-1173:  Fixed rollover error when copying to a directory mapped to a remote Linux
host.
o LOG4J2-1195:  Make KafkaAppender support SerializedLayout. Thanks to Melvin Du.
o LOG4J2-381:  Allow triggering policy and rollover strategy to be modified during reconfiguration.
Thanks to Anthony Baldocchi.
o LOG4J2-1029:  Performance improvement when gathering location information. Thanks to Stefan
Leonhartsberger.
o LOG4J2-1172:  Fixed ThreadLocal leak [AsyncLogger$Info] on Tomcat when using AsyncLoggerContextSelector.
o LOG4J2-1176:  Fixed memory leak when log4j jars are in Tomcat's lib folder.
o LOG4J2-1180:  Logger cache does not account for message factory. Thanks to Mikael Ståldal.
o LOG4J2-879:  Documentation: fixed minor issues with the site and manual pages.
o LOG4J2-999:  RollingFileAppender should also roll over when log event time is equal to rollover
time, not only when later. Thanks to Joan Balagueró.
o LOG4J2-873:  Fixed bug where omitting the <display-name> element in web.xml caused
incorrect log4j initialization,
        resulting in memory leaks when the web application was stopped or reloaded. Thanks
to Martin Dickins, LC, Luke Woodward.
o LOG4J2-323:  Better web app support for async loggers: Fixed a memory leak that occurred
when the logging jars are placed
        in the container's classpath and the configuration file uses AsyncRoot/AsyncLogger.
        The problem was that the first web application started the Disruptor background thread
[AsyncLoggerConfig-1] but did not stop it until all web apps are stopped.
        Each web application now has its own Disruptor which is stopped/started together with
the web app.
o LOG4J2-493:  Better web app support for async loggers: it is now possible to place the logging
jars in the container's
        classpath when making all loggers asynchronous by using AsyncLoggerContextSelector.
This fixes a problem where
        logging would stop working after stopping and restarting a web application.
o LOG4J2-1171:  Use servlet context name for logger context name when available.
o LOG4J2-1159:  Fixed a ThreadLocal memory leak in Tomcat8 that mentions AsyncLoggers when
Async Loggers are not used.
o LOG4J2-1166:  AbstractConfiguration executor should use a DaemonThreadFactory.
o LOG4J2-1165:  Improve Log4j initialization status messages.
o LOG4J2-1156:  Web site corrections and updates.
o LOG4J2-1158:  Log4J JUL adapter is using MessageFormat on String passed by java.util.function.Supplier<String>.
Thanks to Michael Fortin, Gary Gregory.
o LOG4J2-801:  org.apache.logging.log4j.core.Logger should be serializable.
o LOG4J2-1157:  Fix compilation error for classes annotated with @Plugin. Thanks to Norbert
Bartels.
o LOG4J2-948:  Fix plugin documentation error about Converters. Thanks to Andrew Flower.
o LOG4J2-1193:  Prefix all thread names Log4j creates with "Log4j2-".
o LOG4J2-1194:  Documentation does not match parameters for LoggerNameLevelRewritePolicy.
Thanks to Adam Brin.
o LOG4J2-1196:  MongoDbConnection does not close MongoClient. Thanks to René Zanner.

改进:
o LOG4J2-649:  Add PurgePolicy and IdlePurgePolicy to RoutingAppender. Thanks to Aleksey Zvolinsky.
o LOG4J2-1202:  Remove ConfigurationMonitor. The WatchManager is now used to check for configuration
changes.
o LOG4J2-1174:  Update Jackson from 2.6.2 to 2.6.3.
o LOG4J2-1207:  Update kafka-clients from 0.8.2.2 to 0.9.0.0.

Log4j 是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就 是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

在线Javadoc:http://tool.oschina.net/apidocs/apidoc?api=log4j-1.2.16

展开阅读全文
18 收藏
分享
加载中
最新评论 (2)
小编搞错了吧
Log4j 2.4 and greater requires Java 7, versions 2.0-alpha1 to 2.3 required Java 6
我们在JDK6下用2.3版本,性能挺好的,不过在压测的时候偶尔会出现线程BLOCK的情况
2016-01-28 10:52
0
回复
举报
我用logback
2015-12-15 16:12
0
回复
举报
更多评论
2 评论
18 收藏
分享
返回顶部
顶部