我需要将log4j升级到slf4j吗?


10

我们正在审查我们的JEE Web应用程序以进行一些计划的重构,其中一项建议是log4jlogback或替换slf4j

团队尚不清楚我们是否应该执行此操作-因为目前我们希望遵循该规则,否则不会在此区域进行修复

编辑:我不是要比较日志记录框架,而是当我们对log4j非常满意时,更改框架是否是有价值的重构元素

Answers:


18

您应该考虑的一个重要问题:您是在构建供他人使用的库还是在构建最终产品?

在第一种情况下,SLF4j非常重要,因为有人会将您的库集成到已经有日志记录的软件中,如果您的类仅使用它就很好了。

在第二种情况下,我会说您可以保持原样。也许考虑在下一个项目上使用slf4j。


7

别。最好将时间花在实现有用的,有价值的功能上。


6
-1:日志记录必须尽可能的好!

7
因此,他们使用的log4j不够用吗?仅仅因为它的麻烦而替换框架是浪费时间。OP甚至表示日志记录没有中断。
Martin Wickman

1
我不会拒绝这个。马丁可能是正确的。如果Jose有一些成品(不是图书馆,请参阅我的回答),他应该就把它留在原处,然后花点时间在其他地方……
TimBüthe2011年

2
@托尔比约恩,不,日志记录(按照一般的特点),需要的是好需要。如果他们对Log4J没问题(顺便说一句,您也没有引用任何一个有必要替换它),那么很可能会更好地利用他们的时间。
彼得Török

1
-1:恕我直言,一个人比另一个人无条件地偏爱。只需将这个答案与蒂姆·布斯的答案的条件性进行对比即可。
Ajeet Ganga

1

如果Log4J为您工作,则没有理由进行更改。如果不是,请寻找可以满足您需求的替代方案,它可能是slf4j,也可能不是。

仅仅因为某人说的比什么更好,永远都不应该成为更改整个应用程序(或完全采用新的东西)的理由。


0

Slf4j是一个API,可让您选择在部署时是使用log4j,logback还是默认的jdk日志记录,而不是在编译时决定(当您直接编码到log4j时会发生这种情况)

Slf4j还提供了{} -construct,它可以延迟昂贵的toString()调用,如果未启用log语句,则可以完全避免调用。

然后,您可以稍后选择引擎。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.