Как получить вывод консоли slf4j при отсутствии реализации? - PullRequest
1 голос
/ 23 мая 2019

У нас есть много «родительских» (или «библиотечных») проектов.У них есть только slf4j-api в classpath, но нет реализации, такой как logback.

Я часто хочу написать быстрый временный метод main для проверки чего-либо и получить

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.

Как можноЯ получаю вывод без добавления зависимости реализации ведения журнала?

Ответы [ 3 ]

2 голосов
/ 23 мая 2019

Вы не можете обойтись при наличии некоторой зависимости журналирования, если хотите выводить журнал. Однако вы можете использовать простую привязку и установить зависимость как <optional>true</optional>. Это эффективно предотвращает транзитивное добавление зависимости к клиентским проектам и делает ее доступной при запуске метода main в этом конкретном модуле.

2 голосов
/ 23 мая 2019

Slf4j предоставляет API (интерфейсы), а не реализацию, поэтому без добавления некоторой реализации / развертывания вашей собственной IMO было бы невозможно увидеть, что что-то действительно печатается на консоли, и вообще обойти это предупреждение и заставить его работать вкак вы спрашиваете.

Если вам не нужен вход в систему, вы можете использовать slf4j, например, простое связывание .

Другой вариант - использовать какой-то мост дляАдаптируйте API-интерфейс slf4j к ведению журнала Java Util, и затем в JDK будет реализована реализация (например, slf4j-jdk14-1.8.0-beta4.jar)

Если вы хотите использовать тесты, вы можете использовать зависимость в области «test»(предполагается, что вы используете maven, например), чтобы он не распространялся на артефакт.

0 голосов
/ 23 мая 2019

На ваш вопрос " Как получить вывод без добавления зависимости реализации ведения журнала? ".Это невозможно в SLF4J.Должна быть одна реализация регистрации.Если я беру Библию SLF4J, там написано: « Простой фасад ведения журнала для Java (SLF4J) служит простым фасадом или абстракцией для различных структур ведения журналов (например, java.util.logging, logback, log4j), позволяя завершитьПользователь может подключить желаемую структуру ведения журналов во время развертывания".

Как уже упоминалось Марком, вы можете использовать файл .jdk14 .jar, чтобы устранить предупреждение и распечатать.Но в случае любой библиотеки, вы должны добавить ее.

Для получения дополнительной информации, вы можете проверить ниже.

https://www.slf4j.org/ https://www.slf4j.org/manual.html

...