Study/Java

slf4j cast exception

LoonyHyun 2013. 10. 14. 13:37
반응형

java.lang.ClassCastException: org.slf4j.impl.Log4jLoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext


java 라이브러리 중 slf4j를 쓰려고 하다보면 이런 에러가 나타날 경우가 있다.


이 에러는 eclipse 와 같은 코딩 작성 프로그램에서 실행 시 나타나지 않는다.


검색을 해보면 아래와 같은 내용이 나온다.


When I run up my app in a standalone Jetty installation on my development machine (Windows / Cygwin) all is OK, but when I try to run it on my test machine (Ubuntu), I get..........


해석은 간단하다 windows 프로세스에서는 잘 된다는 거다.


그리고 더 검색해보면 한가지 더 나타난다.


충돌!


라이브러리 충돌이다.


보통 프로세스 작성 시 라이브러리는 이것저것 다 넣어놓고 작성한 경우가 있다.

(필요한 것만 넣어서 작성하는 것이 좋다는게 개인적인 생각.)


그 경우 slf4j 뿐 아니라 다른 로그 라이브러리도 추가 되면


linux 등 Console 형태로 실행 시 라이브러리가 충돌이 일어나면서


위와 같은 ClassCastException 이 나타나게 된다.


주의하자! 라이브러리를 무작정 넣지 않기를