10 我们正在审查我们的JEE Web应用程序以进行一些计划的重构,其中一项建议是log4j用logback或替换slf4j 团队尚不清楚我们是否应该执行此操作-因为目前我们希望遵循该规则,否则不会在此区域进行修复。 编辑:我不是要比较日志记录框架,而是当我们对log4j非常满意时,更改框架是否是有价值的重构元素 refactoring — 约瑟克 source
18 您应该考虑的一个重要问题:您是在构建供他人使用的库还是在构建最终产品? 在第一种情况下,SLF4j非常重要,因为有人会将您的库集成到已经有日志记录的软件中,如果您的类仅使用它就很好了。 在第二种情况下,我会说您可以保持原样。也许考虑在下一个项目上使用slf4j。 — 蒂姆·布特 source
7 别。最好将时间花在实现有用的,有价值的功能上。 — 马丁·威克曼 source 6 -1:日志记录必须尽可能的好! 7 因此,他们使用的log4j不够用吗?仅仅因为它的麻烦而替换框架是浪费时间。OP甚至表示日志记录没有中断。 — Martin Wickman 1 我不会拒绝这个。马丁可能是正确的。如果Jose有一些成品(不是图书馆,请参阅我的回答),他应该就把它留在原处,然后花点时间在其他地方…… — TimBüthe2011年 2 @托尔比约恩,不,日志记录(按照一般的特点),需要的是好需要。如果他们对Log4J没问题(顺便说一句,您也没有引用任何一个有必要替换它),那么很可能会更好地利用他们的时间。 — 彼得Török 1 -1:恕我直言,一个人比另一个人无条件地偏爱。只需将这个答案与蒂姆·布斯的答案的条件性进行对比即可。 — Ajeet Ganga
1 如果Log4J为您工作,则没有理由进行更改。如果不是,请寻找可以满足您需求的替代方案,它可能是slf4j,也可能不是。 仅仅因为某人说的比什么更好,永远都不应该成为更改整个应用程序(或完全采用新的东西)的理由。 — 温廷 source
0 Slf4j是一个API,可让您选择在部署时是使用log4j,logback还是默认的jdk日志记录,而不是在编译时决定(当您直接编码到log4j时会发生这种情况) Slf4j还提供了{} -construct,它可以延迟昂贵的toString()调用,如果未启用log语句,则可以完全避免调用。 然后,您可以稍后选择引擎。 — 纽托邦式 source