본문 바로가기

개인 지식/JAVA

amqp-client-5.17.0 에 slf4j 에러 잡기

안녕하세요 오늘은 제가 삽질한 내용을 정리하려고 합니다.😁

 

현재 회사에서 자바 클래스파일 배포를 하고 있습니다. Spring boot를 사용하면 쉽고 간단하지만 경량화를 위해서 클래스 파일 배포를 사용하려고 합니다. 이러다 보니 생긴 문제가 바로 버전 문제입니다.

 

저는 현재 jdk 17을 사용중입니다.(참고하세요!)

 

이 내용으로 들어오신 분들을 위해서 먼저 정리하자면 

  • amqp-client-5.17.0
  • slf4j-api-2.0.7
  • slf4j-simple-2.0.7

이 라이브러리를 추가하게 되면 사용하시면 해결됩니다!

 

사건의 발단

 

평소에는 maven이나 gradle을 통해서 외부 라이브러리를 땡겨받지만 상황 상 직접 maven repository 사이트에 방문하여  라이브러리를 다운 받아야 했습니다. 

최신 버전을 다운 받자! 하면서 5.17.0을 다운받았습니다.

 

해당 프로젝트의 lib 폴더에 라이브러리를 추가하였고 File > Project Structure > Libraries에 + 버튼을 누르고 amqp-client-5.17.0을 추가하였습니다. 

 

자 이제 기분 좋게 코딩을 하고 프로젝트를 실행했더니?!!!! 에러가 발생하였습니다.

 

??? 너 뭔데 slf4j..? 아 여기서 저는 직감적으로 amqp 라이브러리가 slf4j 라이브러리가 필요한 친구구나 하고 생각했습니다. 그리고 GPT에게 이 에러에 대해서 해결 방법을 물어봤습니다.

 

그래서 어떤 라이브러리를 추가해야합니까..? 

 

저는 다시 maven repository에 들어가서 amqp-client 5.17.0에 들어가서 Compile Dependencies를 확인했습니다.

slf4j-api 2.0.7을 추가하면 되겠군... 그렇게 라이브러리를 다운로드 받고 추가를 하였습니다.

움하하 이제 되겠지? 하고 실행을 했지만...

또 에러가 발생하였습니다. 프로그램 실행은 되지만 로그가 남지 않는다는 문구입니다.

하지만 친절하게 링크를 주었으니 들어가서 확인해보겠습니다.

https://www.slf4j.org/codes.html#noProviders

 

SLF4J Error Codes

SLF4J warning or error messages and their meanings No SLF4J providers were found. This warning, i.e. not an error, message is reported when no SLF4J providers could be found on the class path. Placing one (and only one) of the many available providers such

www.slf4j.org

오류가 아닌 경고 메시지는 SLF4J 공급자를 찾을 수 없다고 합니다. 클래스 경로에 slf4j-nop.jar slf4j-simple.jar , slf4j-reload4j.jar , slf4j-jdk14.jar 또는 logback-classic.jar 와 같은 사용 가능한 많은 제공자 중 하나만 배치하면 문제가 해결됩니다.라고 하네요. 그래서 버전에 맞게 

slf4j simple binding 2.0.7을 추가하였습니다. 이렇게 레빗엠큐에서 제공하는 로그를 볼 수있게 되었습니다~!

 

여기서 끝나면 섭하죠 각각의 라이브러리에 대해 설명하겠습니다.

 

amqp-client-5.17.0.jar : amqp 브로커와 통신하기 위한 java 클라이언트 라이브러리

slf4j-api-2.0.7.jar : 개발자가 java 코드에서 로깅문을 작성하는데 사용하는 "인터페이스"가 포함

slf4j-simple-2.0.7.jar: 콘솔에 로그 문을 작성하는 slf4j api의 간단한 구현

 

amqp-client-5.17.0.jar 라이브러리에서 생성된 로그 메시지를 보려면 slf4j-api-2.0.7.jar 및 slf4j-simple-2.0.7.jar 파일을 클래스 경로에 추가해야 합니다.

이는 amqp-client-5.17.0.jar 라이브러리가 SLF4J를 사용하여 로그 문을 작성하고 slf4j-simple-2.0.7.jar 라이브러리가 로그 문을 콘솔에 쓰는 SLF4J API의 구현을 제공하기 때문입니다.

 

해결~!

'개인 지식 > JAVA' 카테고리의 다른 글

[window 10] jdk 여러 개 설치 후 사용하기  (0) 2023.03.28
정규표현식  (0) 2021.12.27