개발자의 오르막
SLF4J Warning : Class path contains multiple SLF4J bindings. 본문
스프링 부트 프로젝트를 진행하면서 결국 하나의 장벽에 직면했다.. 자잘한 에러들은 금방
고치긴 했는데.. 이번 에러는 차근차근 풀어나가고 싶었다.
(뭐.. 아무것도 모르지만 ㅠㅠ)
# SLF4J
SLF4J는 facade 디자인 패턴을 사용한 로깅 프레임워크이며, Log4j, LogBack 이 SLF4J 를 구현한 구현체이다.
facade 패턴은 여러개의 클래스가 하나의 역할을 수행할 때, 대표적인 인터페이스만을 다루는 클래스를
두어 원하는 기능을 처리할 수 있게 도와주는 패턴이다.
아래와 같은 에러가 나는 이유로. slf4j와 logback 두개 모두 dependency를 추가하면서
SLF4J로 추가했던 dependency에 log4j를 default로 사용하면서 실질적으로 원했던
logback 이 아닌 log4j가 logger로 선택되면서 발생한 문제이다.
아래 메시지를 보면 Actual binding 은 logback 임을 강조하는 문구가 보인다..
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/ADMIN/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/ADMIN/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
이런 메시지가 뜨는데. multiple SLF4J bindings 이 핵심인 것 같다.
m2/repository의 ch/경로의 slf4j 와 org/ 경로의 slf4j가 충돌이 나는걸까..
요상한 건 thymeleaf 의 dependency 가 추가되면서 이 에러가 떴다는 것이다.. 다른 프로젝트에서는 안떴는데. ㅠ
(build 순서의 문제일까 싶어서 요리조리 바꿔봤지만 안됐다.. ㅠ)
그럼 에러의 내용대로 둘중 하나의 경로를 한번 삭제해봐야겠다. ㅎㅎ
난 org 코인에 투자하고, org를 밀어봤다ㅎㅎ 두둥..
일단 난리가 났는데.. ㅋㅋㅋㅋㅋㅋㅋㅋㅋ maven update 를 함 해봐야겠다.
휴.. 일단 성공..
그렇지만.. 여전히 같은 에러가 뜬다.. 어떻게 같은 에러가 뜨는거지?? / 폴더를 삭제했는데!!
빌드업을 시켜보니.. ch 폴더던 org 폴더던 다시 생김을 알 수 있었다!! ㅠㅠ
그렇다면 방법은 dependency 부분을 수정하는 것 뿐!
https://www.slf4j.org/codes.html#multiple_bindings
구글링을 해보니.. 역시 좋은 싸이트를 금방 찾을 수 있었다.
읽어보니.. multibinding 됐으니 둘 중 하나를 exclude를 하면 된다는 얘기인 것 같았다.
버전은 다르니까.. exclusion 부분만 가져와서 붙여봤다ㅎㅎ
exclusion 붙이거나, slf4j 의 dependency를 삭제하거나!!
'Trouble Shouting' 카테고리의 다른 글
(Node.JS) CSS status cancled -> URL 앞에 / 붙임? (0) | 2019.10.04 |
---|---|
[Node.js]cors header 'access-control-allow-origin' missing (0) | 2019.10.01 |
No message available (SpringBoot - REST-AJAX) (0) | 2019.09.30 |
SpringBoot-Error (STS 실행무반응) (1) | 2019.09.05 |
Java-Error ( 환경 변수 설정 ) (0) | 2019.08.24 |