Apache Log4j 2.0 正式版发布

  • 李士窑

2014 年 7 月 18 日

话题:Apache语言 & 开发架构

Log4j 是一个开放源代码的日志记录框架,用 Java 编写,且被广泛使用。它使开发者能够控制日志信息输出的目的地和日志的输出格式。开发者还能够使用外部配置文件,在系统运行时配置日志记录的相关信息。近日,Apache Log4j 2 团队宣布 Log4j 2.0 正式版发布,该版本是近四年来,继先前的 13 个版本后的第一个正式版,需要 Java 6 或者更高的 Java 版本支持。它相对于 Log4j 1.x 系列版本,修复了大量 bug 和优化了性能。

主要改进包括:

  1. 新增了自定义日志记录包装器,取代了现有的日志级别和扩展的日志记录包装器
  2. 修复了 RegexFilter 不能匹配多行日志的问题
  3. 修复了 Async Logger 不能记录线程上下文的栈数据
  4. 为 ThreadContext.ContextStack 接口新增了 getImmutableStackOrNull() 方法
  5. 修复了使用 SocketAppender 和 Async Loggers 时出现的序列化错误的问题
  6. 修复了在 Android 开发中不能找到类‘javax.naming.InitialContext’的问题
  7. 修复了 LoggerConfigs 只能继承父类等级的问题
  8. 修复了特殊字符在 PatternLayout 不起作用的问题
  9. 将 Apache Commons Logging 的版本从 1.1.3 升级到了 1.2
  10. 将 Jackson 的版本升级到了 2.4.1 版本
  11. 将 org.apache.logging.log4j.core.layout 包下的 AbstractLayout 抽象类型优化成了不变类型

另外请注意,Log4j 2.0 的 API 是和 Log4j 1.x 系列的 API 不兼容的。欲获得 Log4j 2.0 的更多信息,请登录Log4j 2 官方站点


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

Apache语言 & 开发架构