Log4j 2.5 发布,Java 日志组件

编辑: oschina

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
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
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
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
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
o LOG4J2-1174:  Update Jackson from 2.6.2 to 2.6.3.
o LOG4J2-1207:  Update kafka-clients from to

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


18 收藏
最新评论 (2)
Log4j 2.4 and greater requires Java 7, versions 2.0-alpha1 to 2.3 required Java 6
2016-01-28 10:52
2015-12-15 16:12
2 评论
18 收藏