不使用时为什么会出现SLF4J错误?

时间:2018-10-04 00:33:35

标签: java eclipse slf4j

我在Eclipse中有一个小型的单类Java项目,该项目不使用任何形式的日志记录。我有另一个在同一工作区中打开使用SLF4J的项目。

当我运行程序时,它输出到STDOUT并从STDIN接收Scanner输入,但是在程序成功完成之后,我将其打印到STDERR:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

如果我的项目中不包含SLF4J(它也不是Maven依赖项),为什么它显示此错误?

1 个答案:

答案 0 :(得分:2)

您对使用slf4j日志记录api的类路径具有依赖性或传递性依赖性。 Slf4j的安装方式使其在加载时希望您也提供实现。

在最简单的设置中,您可以添加slf4j-simple作为项目的依赖项,以提供预期的实现。它将所有消息记录到控制台。如果您选择不添加实现,那么将会发生的一切就是您将看不到该库中的任何日志。

如果这是一个个人项目,除非您需要调试问题,否则可能并不重要。

如果这是一个现有的生产项目,则根据情况可以做几件事。

  • 您可以使用logback-classic开始使用slf4j进行日志记录
  • 如果您已经在使用其他日志记录器(例如log4j),则可以添加一个jar来将slf4j日志记录路由到现有记录器(有关记录器的详细信息,请参阅slf4j manual
  • 您可以提供自己的日志记录实现(有关此操作的详细信息,请参阅slf4j manual
相关问题