Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有理由避免使用slf4j?_Java_Logging_Log4j_Slf4j - Fatal编程技术网

Java 是否有理由避免使用slf4j?

Java 是否有理由避免使用slf4j?,java,logging,log4j,slf4j,Java,Logging,Log4j,Slf4j,深入了解一些Java日志记录的内容,并提出问题。它似乎非常方便,总是以同样的方式在.java文件中进行日志记录,只关心记录器名称,然后通过使用right.jar和.properties/.xml文件进行所有日志记录配置 在任何项目中默认使用或不使用slf4j的原因是什么 在这个特定的案例中,log4j将实际执行日志记录(一些到文件,一些到标准输出,一些到数据库),这是一个maven项目 我希望有经验的人能简单地说“是的,去做吧”或“不,使用slf4j是在自找麻烦。”。这是当今的标准通用日志接口,

深入了解一些Java日志记录的内容,并提出问题。它似乎非常方便,总是以同样的方式在.java文件中进行日志记录,只关心记录器名称,然后通过使用right.jar和.properties/.xml文件进行所有日志记录配置

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

在这个特定的案例中,log4j将实际执行日志记录(一些到文件,一些到标准输出,一些到数据库),这是一个maven项目


我希望有经验的人能简单地说“是的,去做吧”或“不,使用slf4j是在自找麻烦。”。这是当今的标准通用日志接口,它最终在实际日志实现的插入方面做得很好。Logback由于强烈建议使用该实现,它是log4j的继承者,由从一开始就退出log4j的同一个人完成,但解决了log4j中无法解决的问题。

我们已经在
SLF4J
API上登录了1.5年。在此之前,我们直接使用了
log4j
。现在我们使用
jboss.logging
,使用
logback
intermezzo,并且必须更改代码中的零行,以应对所有框架的更改


所以,去做吧;)

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

讨论中的项目是使用Maven2构建的Jenkins插件,这可能是复杂的原因。“只是将这些依赖项放到.pom中”是行不通的


因此,为了回答我自己的问题,不使用slf4j的一个原因是:更少的活动部件,更少的依赖关系,更少的手册和文档需要阅读,更少的问题需要在So/邮件列表上询问。

看到了,我看不出有任何理由避免它。slf4j使用JDK14LoggerAdapter的唯一方法是因为您(或您使用的东西)取决于sfl4j-jdk14桥。由于我们已经使用slf4j多年,无论是否使用Maven,这向我表明,这里的痛点不是slf4j,而是Maven的经验。您可能想了解有关Maven依赖项的提示。@ThorbjørnRavnAndersen我还是选择slf4j。“诀窍”是在开发阶段不必担心它,然后在部署时弄清楚在哪里放置动态日志记录。只有当一个人想要控制日志记录但无法控制部署时,这才变得困难。我建议你像我们一样做。将其分为两个步骤。第一步是构建各种jar工件。第二步是创建部署。这种分离使许多事情变得更清楚,两个步骤给了您更大的灵活性。