是否值得从 log4j1 迁移到 log4j2

Is it worth migrating from log4j1 to log4j2

我们正在发展我们的公司 Java EE 基础架构,并正在考虑更改我们的日志记录平台。我们目前使用 slf4j 作为 API 和 log4j1 作为底层日志实现。

由于我们不直接使用log4j的API,而是sf4j的,所以都是修改配置的问题,已经完成了。

我们对日志系统的使用非常基础,所以我们不需要像 log4j2 的高级过滤这样的功能。

关于性能,根据 docs,似乎没有太大的改进。

那么,您认为我们应该将我们的应用程序从 slf4j+log4j1 迁移到 slf4j+log4j2 吗?为什么?您认为它有什么优势?

就我的经验而言,与 Log4j 相比,Log4j2 没有重大升级。但是有许多在 Log4j 上提出的 Bug 修复,现在已经进入 Log4j2。 下面的 link 将提供有关此类修复的信息

https://issues.apache.org/bugzilla/show_bug.cgi?id=50213&action=View

由于您使用的是 SLF4j,因此很容易迁移到 Log4j2 - 不会有任何代码更改,只有库更改。

根据文档,异步记录器和追加器似乎极大地提高了 Log4J 2 的性能:https://logging.apache.org/log4j/2.x/manual/async.html#Performance

此外:Log4J 1 已停产:https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces

来自公告:

Apache Log4j 2 features a completely rewritten framework. In addition, it is faster, more reliable, and much easier to develop and maintain.

所以,是的,我认为值得升级。