@babydragon
2015-09-12T09:28:03.000000Z
字数 2282
阅读 1925
正如最近在InfoQ上发布的,Apache软件基金会宣布Log4j版本1生命周期终结,鼓励用户升级到流行的日志框架:Log4j版本2。
InfoQ和Apache日志服务团队的成员接触,试图找到更多关于新版本Log4j的过渡和它的特性。他们是Apache日志项目管理委员会成员、Log4j 2最初发起者Ralph Goers,Apache日志项目管理委员会成员Remko Popma和Gary Gregory,Apache日志项目管理委员会主席Christian Grobmeier。
InfoQ:尽管Lo4j2发布刚过了一年,根据maven中央仓库的统计,版本1仍然比版本2更加受欢迎。你们认为生命周期终结会促使用户迁移到新版本吗?
Remko:我希望生命周期终结至少会提高人们对Log4j2存在的认识。我非常理解有的时候没有动机来改变这种没有引起任何问题的东西,但是我也希望生命周期终结将会激励用户至少在新项目中使用Log4j2。
Christian:生命周期终结也许只是一个标签,但是我们都知道之后将不太可能有人会投入大量时间去发布Log4j1的新版本了。它的构建是相当恐怖的复杂。正因为不在会有新的发布,这也可能导致一些安全问题。事实上我们有完备的Log4j1缺陷跟踪系统,用户仍然可以自由的报告问题,但是除非他们同时提交补丁,否则我们将不在修复。这表示,如果只出于安全方面原因,用户也应该考虑升级。
InfoQ:现在看起来重写Log4j新版本的主要原因是为了克服版本1中架构上种种挑战。然而,仍然有很多只有简答日志记录需求的用户,可能不需要现在正在开发的新特性,你们会怎样告诉这些用户,说服他们迁移到版本2上?
Remko:“简单的日志记录需求”一般表示“我们很忙,没有空去分析我们的未来的日志记录需求,或者花时间比较各种可选框架”。完全可以理解。我想说的是,Log4j2是一个完美的选择:它易于使用,令人惊叫的快,并且在功能和灵活性上有难以置信的深度,可以适应未来增长的需求。
Ralph:虽然我们推荐用户升级到Log4j2,但是如果他们愿意,他们仍然能够自由的使用Log4j1。然而,用户应该知道,虽然他们能够继续报告在使用Log4j1时遇到的问题,但是这些问题只有在用户提供补丁或者寻找其他愿意修复人之后才有可能被修复。
Gary:有一点有目共睹的是,对我们(开发者)非所有(用户)来说,我们都是志愿者,这表示我们只有有限的时间和资源,因此,我们需要决定什么是奉献这些资源最有效的方式。在Log4j1上进行更改太困难,将同样的努力聚焦到版本2上,我们可以获得更多的价值。
另外,生命周期终结只是说说而已。如果开发者愿意,可能会有新的版本发布。但是一些问题可能只有在新的架构和版本中才能被方便的定位。
InfoQ:由于不得不停止使用Log4j版本1,一些开发者可能会考虑移植到不同的日志框架,而不是简单的升级到版本2,这会是一个顾虑吗?
Remko:我强烈感觉到Log4j2对于其他可选框架是有竞争力的。这里有一些Log4j2的特性,我可以用来突出证明:
- 社区支持:Log4j2有活跃的社区,在这里有问题的回答,特性的增加和缺陷的修复。
- 超低的性能影响:异步日志记录器( Asynchronous Loggers)提供性能类似于日志记录完全关闭的水平。
- 稳定性/可靠性:自动加载修改后的配置,并且在重新配置时不会丢失日志事件。
- 有丰富的功能集,包括自定义日志级别,过滤(基于上下文数据、标记、正则表达式和日志事件中的其他组件)和查找。
- 可插拔架构:通过构建自定义组件,可以方便的扩展。
- 支持的API:Log4j2可以被直接使用,或者通过SLF4J、Commons Logging、Log4j1和java.util.logging日志接口间接使用。
- 即将发布的2.4版本会支持Java 8的lambda表达式。
InfoQ:你们认为Log4j版本1生命周期终结的时机是对的吗?如果你们可以改变,你们会将这个时间点提前、延后还是保持不变?
Remko:我认识它是正确的。Log4j2迄今已经有19次发布了,最后6次被标记为正式发布版本(General Availability)。从第一个GA(General Availability)版本发布以来,已经有超过一年的时间,Log4j2已经被证明是非常稳定的。这使得我们认为Log4j2是Log4j1安全的替代品,因此这是一个非常好的实际来声明上一个版本的终结。
Ralph:我们对于生命周期终结的声明,只是对近几年来已经没有人在位Log4j1修复缺陷的这个事实承认。在某种程度上说,版本1的生命周期已经终结了很久了。我们只是需要确保在Log4j1正式退休前,Log4j2已经是稳定、可靠的替换版本。
InfoQ:你们认为日志记录领域最大的挑战将会是什么?针对Log4j的又会是什么?
Remko:就个人而言,我将继续提升Log4j2的性能,尤其是在同步日志记录场景下。我认为在这个领域仍然有很多提升的可能。一个更大的挑战或许是日志管理:收集、集中化聚合、长期保留、日志分析、日志搜索和报告。已经有产品尝试解决这些问题,或许如果有标准出现,Log4j可以做一些工作,让这些任务更加容易。
Apache软件基金会为希望从版本1升级到版本2的用户创建了一份迁移指南,同时提供了建议采用的Log4j2特性摘要。
查看英文原文:http://www.infoq.com/news/2015/09/interview-log4j-pmc