2

深入研究一些 Java 日志记录,以及关于slf4j的问题。看起来非常方便,总是在 .java 文件中以相同的方式进行日志记录,只关心记录器名称,然后通过正确的 .jar 和 .properties/.xml 文件进行所有日志记录配置。

在任何项目中默认使用或不使用slf4j的原因是什么?

在这种特殊情况下,log4j 实际上会进行日志记录(一些到文件,一些到标准输出,一些到数据库),它是一个 maven 项目。

我希望有经验的人给出简单的“是的,去吧”或“不,使用 slf4j 是在自找麻烦 X”。

4

3 回答 3

4

我们已经登录SLF4JAPI 1.5 年了。在此之前我们log4j直接使用。现在我们使用jboss.logging, 和一个logback间奏,并且必须在我们的代码中更改零行以更改所有框架。

所以,去吧;)

于 2012-11-27T09:33:25.510 回答
3

绝对使用 slf4j。它是当今标准的通用日志接口,它最终在插入实际日志实现方面做得很好。强烈推荐 logback 作为实现,它是 log4j 的继承者,由从一开始就退出 log4j 的同一个人完成,但理顺了 log4j 中无法理顺的问题。

于 2012-11-27T09:32:12.337 回答
0

好吧,我实际上最终没有使用 slf4j,而是直接使用 log4j,因为 slf4j 只是继续使用JDK14LoggerAdapter而不是Log4jLoggerAdapter或 LogBack,我厌倦了试图通过调整依赖项来让它工作......

有问题的项目是使用 Maven2 构建的 Jenkins 插件,这可能是复杂的原因。“只是将这些依赖项放到 .pom 中”确实不起作用。

所以,回答我自己的问题,不使用 slf4j 的一个原因是:更少的移动部件,更少的依赖,更少的手册和文档需要阅读,更少的问题可以在 SO/邮件列表中提问。

于 2012-12-07T11:29:31.493 回答