写点什么

Log4j 版本 1 生命周期终结

  • 2015-09-02
  • 本文字数:1240 字

    阅读完需:约 4 分钟

Apache 宣布 Log4j 版本 1 生命周期终结。虽然 Log4j 版本 2 在 2014 年 7 月已经发布,版本 1 仍然维护到 2015 年 8 月初。新版本是一个完全重写的日志库,解决了许多版本 1 的问题,达到了前所未有的性能。Apache 已经为简化升级做出了努力,但是高级用户可能需要做一定的迁移工作。

根据Apache 的报告,最早发布于1999 年的日志框架Log4j 版本1 有许多架构上的问题和发布过程中的不足,这些问题导致开发起来相当困难。这促使一些维护Log4j 的社区开发者放弃了这个框架,转投其他类似的项目,如Logback,这些项目也鼓动开发者这样做。为此,Apache 决定从头开始编写Log4j 版本2,克服第一个版本的不足之处,恢复部分社区基础。

尽管Log4j 版本2 有如此多优势,到目前为止它的使用率增长很慢。根据maven 中央仓库统计,在写这篇文章的时候,使用Log4j 版本2 的构件有大约350 个,而使用版本1 的有将近6000 个。相比之下,使用Logback 的构件有超过5000 个

为了克服这个问题,Apache 试图让升级Log4j 版本2 过程尽可能的简单。对于通过类似SLF4J 等日志门面使用Log4j 的场景,升级只需要将绑定的jar 文件从slf4j-log4j12 替换成log4j-slf4j-impl-2.0,移除所有Log4j 版本1 的引用,添加版本2 的实现jar 文件。对于直接使用Log4j 的场景,用户需要参考 Apache 的迁移指南,迁移指南提供了两种方案:所有调用都转换成新的 API,或者使用桥接jar 文件,它将会捕捉所有使用Log4j 版本1 基础设施的调用,将它们转发到Log4j 版本2。

不幸的是,这个桥接文件针对用户代码中有自定义追加器(Appender)、过滤器(Filter)等内容将无法工作,因为这些在Log4j 版本2 中的工作方式有所不同。例如在Log4j 版本1 中,自定义一个追加器必须要扩展 AppenderSkeleton 类,实现和继承其中的方法。而在 Log4j 版本 2 中,自定义追加器以插件形式创建,并需要注册。考虑到不得不进行转换工作,在这种场景下完全迁移到新版本可能是一个最好的选择。

另一方面,警惕传递依赖的用户在添加Log4j 版本2 依赖的时候可能会惊讶。一些用户报告说,新版本的日志框架可能会引入超过30 个直接依赖。然而进一步检查发现,大部分依赖不是测试范围的,就是可选的。这意味着实际在生产环境添加的直接依赖不会超过两个。

更简单的替代品

只有非常简单日志记录需求的用户不必为选择不同的日志框架或者处理升级犯愁:从Java 4(1.4)开始,Java 包含一个日志记录工具,作为 java.util.logging 包中的一部分。该工具的效率没有像 Log4j 或 Logback 这些库那样高,在功能方面也比较落后。但是由于该工具被包含在标准 OpenJDK 中,使得它在许多场景下成为一个合适的选择。

查看英文原文: Log4j Version 1 Reaches End of Life


感谢张龙对本文的审校。

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

2015-09-02 19:004099

评论

发布
暂无评论
发现更多内容

共享洗车机多少钱一台?看品牌

自助洗车加盟

自助洗车机价格 自助洗车加盟 共享洗车机多少钱

Guava中这些Map的骚操作,让我的代码量减少了50%

码农参上

JAVA开发 Guava java工具包

XTransfer技术新人进阶秘诀:不可错过的宝藏Mentor

XTransfer技术

职场新人 职场经验

在shiro基础上整合jwt,可在项目中直接使用呦

阿Q说代码

springboot Java EE 权限验证 shiro整合jwt

即构「畅直播」上线!提供全链路升级的一站式直播服务

ZEGO即构

Datakit 代理实现局域网数据统一汇聚

观测云

车白兔:洗车新模式共享自助洗车

自助洗车加盟

自助洗车 自助洗车加盟 车白兔洗车

TDengine可通过数据同步工具 DataX读写

TDengine

数据库 tdengine 时序数据库 DataX

海泰前沿技术|隐私计算技术在医疗数据保护中的应用

电子信息发烧客

应用实践 | 海量数据,秒级分析!Flink+Doris 构建实时数仓方案

SelectDB

数据库 flink 数据分析 Doris 数仓

一文理解OpenStack网络

华为云开发者联盟

后端 网络

畅直播|针对直播痛点的关键技术解析

ZEGO即构

直播体验升级 首帧秒开

升哲科技 AI 智能防溺水服务上线

SENSORO

大数据 AI 物联网

主数据建设的背景

奔向架构师

数据仓库 主数据 6月月更

Redis+Caffeine两级缓存,让访问速度纵享丝滑

码农参上

redis 缓存 JAVA开发 Caffeine

心楼:华为运动健康的七年筑造之旅

脑极体

牛客java选择题每日打卡Day1

京与旧铺

6月月更

AntDB数据库在线培训开课啦!更灵活、更专业、更丰富

亚信AntDB数据库

数据库 AntDB 培训学习 数据库·

如何化解35岁危机?华为云数据库首席架构师20年技术经验分享

华为云开发者联盟

中年危机 经验分享 华为云

openGauss内核:简单查询的执行

华为云开发者联盟

数据库 互联网 华为云

架构实战营 第 6 期 毕业总结

火钳刘明

Volcano成Spark默认batch调度器

华为云开发者联盟

云计算 数据分析 后端

建木持续集成平台v2.5.0发布

Jianmu

开源 DevOps CI/CD Worker 建木CI

架构实战营 第 6 期 毕业设计

火钳刘明

#架构实战营 「架构实战营」

为什么生命科学企业都在陆续上云?

阿里云弹性计算

HPC 高性能计算 生命科学 基因测序

面试官:你说你精通Redis,你看过持久化的配置吗?

阿Q说代码

redis aof rdb 数据持久化

《各行业零代码企业应用案例集锦》正式发布

明道云

优酷 Android 包瘦身治理思路全解

阿里巴巴文娱技术

治理 包大小

如何做到全彩户外LED显示屏节能环保

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏

车白兔:自助共享洗车机哪家好

自助洗车加盟

自助洗车机 自助洗车加盟 车白兔自助洗车

共享智能自助洗车现在市场如何

自助洗车加盟

自助洗车加盟 自助洗车市场 共享智能自助洗车

Log4j版本1生命周期终结_Java_Abraham Marín Pérez_InfoQ精选文章