log4j vs logback [已关闭]

2022-08-31 07:09:25

我们在一个自制的包装器后面使用log4j。我们计划现在使用它的更多功能。

我们应该更新到日志吗?

(我的意思是框架不是像SLF4J那样的门面)


答案 1

Logback 以本机方式实现 SLF4J API。这意味着,如果您使用的是 logback,则实际上是在使用 SLF4J API。从理论上讲,您可以直接使用 logback API 的内部进行日志记录,但强烈建议不要这样做。记录器上的所有日志文档和示例都是根据 SLF4J API 编写的。

因此,通过使用 logback,您实际上将使用 SLF4J,如果出于任何原因您想切换回 log4j,只需将 slf4j-log4j12.jar放到类路径上,即可在几分钟内完成。

从 logback 迁移到 log4j 时,logback 的特定部分,特别是 logback.xml 配置文件中包含的部分仍然需要迁移到其 log4j 等效项,即 log4j.properties。在另一个方向迁移时,log4j 配置(即 log4j.properties)需要转换为其 logback 等效项。有一个在线工具可以做到这一点。迁移配置文件所涉及的工作量远远少于迁移遍及所有软件源代码及其依赖项的记录器调用所需的工作量。


答案 2

你应该吗?是的

为什么?Log4J基本上已被Logback弃用。

紧急吗?也许不是。

它是无痛的吗?可能,但这可能取决于您的日志记录语句。

请注意,如果您真的想充分利用LogBack(或SLF4J),那么您真的需要编写正确的日志记录语句。这将产生一些优势,例如由于延迟计算而导致代码速度更快,并且由于可以避免保护而减少代码行数。

最后,我强烈推荐SLF4J。(为什么要用自己的门面重新创建轮子?


推荐