Почему я получаю ошибку SLF4J, когда я ее не использую? - PullRequest
0 голосов
/ 04 октября 2018

У меня есть небольшой одноклассный Java-проект в Eclipse, который не использует какую-либо форму ведения журнала.У меня есть другой проект, который использует SLF4J, открытый в той же рабочей области.

Когда я запускаю свою программу, она выводит в STDOUT и принимает вход сканера из STDIN, но после успешного завершения программы, я распечатываю это в 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 голосов
/ 04 октября 2018

У вас есть зависимость или транзитивная зависимость от пути к классам, который использует API журналирования slf4j.Slf4j настроен таким образом, что при загрузке он ожидает, что вы также предоставите реализацию.

В простейшей настройке вы можете добавить slf4j-simple в качестве зависимости вашего проекта, чтобы обеспечить ожидаемую реализацию.Он будет записывать все сообщения на консоль.Если вы решите не добавлять реализацию, все, что произойдет, это то, что вы не увидите никаких журналов из этой библиотеки.

Если это личный проект, он может быть не важен, если вам не нужно отладить проблему.

Если это существующий проект для производства, есть несколько вещей, которые вы можете сделать в зависимости отобстоятельства.

  • Вы можете начать использовать slf4j для ведения журнала с logback-classic
  • Если вы уже используете другой регистратор, такой как log4j, вы можете добавить jar, который направляет запись slf4j в существующий журнал.logger (см. slf4j руководство для получения подробной информации о вашем регистраторе)
  • Вы можете предоставить свою собственную реализацию регистрации (см. slf4j руководство для получения подробной информации об этом.
...