Как включить вход в org.slf4j для версии: '2.0.0-alpha1' при загрузке Spring - PullRequest
11 голосов
/ 17 апреля 2020

Я использовал протоколирование SLF4J для печати всех журналов. Я использую последнюю версию org.slf4j.

реализация 'org.slf4j: slf4j-api: 2.0.0-alpha1'

реализация 'org.slf4j: log4j-over-slf4j: 2.0.0-alpha1'

Но я получаю следующую ошибку, а также журналы не печатаются.

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8.
SLF4J: Ignoring binding found at [jar:file:/home/user/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation.

Журналы работают нормально с более старой версией (1.7.25). Нужно ли что-то добавить или настроить в проекте, чтобы эти журналы можно было распечатать

Ответы [ 3 ]

1 голос
/ 27 апреля 2020

Будет напечатано сообщение с добавлением slf4j-log4j12 вместо slf4j-api

Удалите следующее

implementation 'org.slf4j:slf4j-api:2.0.0-alpha1'
implementation 'org.slf4j:log4j-over-slf4j:2.0.0-alpha1'

Добавить

implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '+'
0 голосов
/ 27 апреля 2020

При использовании Spring Boot 2.x вам не нужно импортировать зависимости журнала. Все, что требуется, это импортировать Spring Boot Starter , что вы, скорее всего, уже сделали. Например, spring-boot-starter-web, который зависит от spring-boot-starter-logging, который загружает модуль spring-jcl, необходимый для регистрации в Spring Framework.

При использовании стартеров Logback используется для регистрации по умолчанию, Log4j не требуется.

Просто удалите все ссылки на slf4j из файла сборки. Вот как выглядит ссылка на Spring Boot Web Starter в файле build.gradle.

compile("org.springframework.boot:spring-boot-starter-web")
0 голосов
/ 21 апреля 2020

Это потому, что slf4j - это абстракция, которая требует связывания с другими уже существующими библиотеками. Следовательно, если вы используете просто slf4j для печати журналов, это не сработает, потому что у него не будет настроек уровня ведения журнала и т. Д. c. Эта ссылка дает некоторую информацию об этом.

Кроме того, новая версия Spring Boot имеет интеграцию по умолчанию с slf4j для версии 1.7.9

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...