스프링 부트에서 org.slf4j 버전에서 로깅을 활성화하는 방법 : '2.0.0-alpha1'


11

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)에서는 로그가 제대로 작동합니다. 이 로그를 인쇄 할 수 있도록 프로젝트에 추가하거나 구성해야 할 것이 있습니까?


여기서 POM 파일을 공유 할 수 있습니까? 의존성이 무엇인지 이해하는데 도움이 될 것입니다.
user2281204

답변:


1

slf4j-api 대신 slf4j-log4j12를 추가하는 메시지를 인쇄합니다.

다음을 제거하십시오

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

이는 slf4j가 기존의 다른 라이브러리와 바인딩해야하는 추상화이기 때문입니다. 따라서 단순히 slf4j를 사용하여 로그를 인쇄하는 경우 로깅 수준 등에 대한 설정이 없으므로 작동하지 않습니다. 이 링크 는 동일한 정보를 제공합니다.

또한 Spring Boot의 새 버전은 1.7.9 버전의 slf4j와 기본 통합됩니다.


0

Spring Boot 2.x 사용시 로그 종속성을 가져올 필요가 없습니다 . 필요한 것은 Spring Boot Starter 를 가져 오는 것입니다. 예를 들어 spring-boot-starter-web, Spring Framework로 로깅하는 데 필요한 모듈 spring-boot-starter-logging을 가져옵니다 spring-jcl.

스타터를 사용하는 경우 기본적으로 Logback 이 로깅에 사용되며 Log4j는 필요하지 않습니다.

slf4j빌드 파일에서 모든 참조를 제거 하십시오. 다음은 build.gradle 파일에서 Spring Boot Web Starter에 대한 참조를 보여줍니다 .

compile("org.springframework.boot:spring-boot-starter-web")
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.