深入研究一些Java日志记录,并询问slf4j。它似乎非常方便,总是在.java文件中以相同的方式进行日志记录,只担心记录器名称,然后通过使用正确的.jar和.properties / .xml文件来执行所有日志记录配置。
在任何项目中默认使用或不使用 slf4j 的原因是什么?
在这种特殊情况下,log4j实际上会进行日志记录(一些是文件,一些是stdout,一些是数据库),而且它是一个maven项目。
我希望从有经验的人那里得到简单的“是的,去吧”或“不,使用slf4j就是要求麻烦X”。
答案 0 :(得分:4)
我们已经在SLF4J
API登录了1。5年了。在此之前,我们直接使用log4j
。现在我们使用jboss.logging
和logback
intermezzo,并且必须在我们的代码中更改所有框架更改的零行。
所以,去吧;)
答案 1 :(得分:3)
绝对使用slf4j。它是当今标准的通用日志记录接口,它最终在插入实际日志记录实现方面做得很好。强烈建议使用Logback,它是log4j的后续版本,由同一个从一开始就退出log4j的人完成,但理顺了log4j中无法理解的问题。
答案 2 :(得分:0)
好吧,我实际上最终没有使用slf4j,而是直接使用log4j,因为slf4j只是继续使用JDK14LoggerAdapter
而不是Log4jLoggerAdapter
或LogBack,我厌倦了尝试将其转换为通过调整依赖关系......
有问题的项目是使用Maven2构建的Jenkins插件,这可能是并发症的原因。它真的不起作用“只是将这些依赖项放到.pom”。
因此,为了回答我自己的问题,不使用slf4j的一个原因是:移动部件少,依赖性少,手册和文档阅读量少,SO /邮件列表要求的问题少。