Log4j 是一个开放源代码的日志记录框架,用 Java 编写,且被广泛使用。它使开发者能够控制日志信息输出的目的地和日志的输出格式。开发者还能够使用外部配置文件,在系统运行时配置日志记录的相关信息。近日,Apache Log4j 2 团队宣布 Log4j 2.0 正式版发布,该版本是近四年来,继先前的 13 个版本后的第一个正式版,需要 Java 6 或者更高的 Java 版本支持。它相对于 Log4j 1.x 系列版本,修复了大量 bug 和优化了性能。
主要改进包括:
- 新增了自定义日志记录包装器,取代了现有的日志级别和扩展的日志记录包装器
- 修复了 RegexFilter 不能匹配多行日志的问题
- 修复了 Async Logger 不能记录线程上下文的栈数据
- 为 ThreadContext.ContextStack 接口新增了 getImmutableStackOrNull() 方法
- 修复了使用 SocketAppender 和 Async Loggers 时出现的序列化错误的问题
- 修复了在 Android 开发中不能找到类‘javax.naming.InitialContext’的问题
- 修复了 LoggerConfigs 只能继承父类等级的问题
- 修复了特殊字符在 PatternLayout 不起作用的问题
- 将 Apache Commons Logging 的版本从 1.1.3 升级到了 1.2
- 将 Jackson 的版本升级到了 2.4.1 版本
- 将 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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论