[eclipse] SLF4J :“org.slf4j.impl.StaticLoggerBinder”클래스를로드하지 못했습니다. 오류

  • Eclipse IDE 관련 ( Indigo , JunoKepler (32 및 64 비트 버전))
  • 플랫폼 : Windows , Ubuntu , Mac
  • m2e 버전 : 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 ,
    1.4.0.20130601-0317

일반 정보

위의 오류는 m2e를 버전 1.1로 업데이트 한 후 발생했습니다. m2e 1.1을 제거하고 m2e 1.0으로 롤백하면 모든 것이 잘 작동했습니다. Windows와 Ubuntu에서 문제를 반복하려고 시도했지만 똑같은 오류가 발생했습니다. slf4j-api 및 logback의 수많은 구성이 테스트되었지만 작동하지 않는 것 같습니다.

오류는 slf4j 종속성을 선언하지 않고도 모든 maven 프로젝트에 나타납니다 .

  • 새로운 Maven 프로젝트-> maven-archetype-quickstart

  • New Maven Project-> 아키 타입 선택이없는 간단한 프로젝트

    결과

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

환경 및 구성 테스트

Mac에서 Eclipse Indigo 및 Eclipse Juno (32 비트 및 64 비트 모두), Ubuntu에서 32 비트, Windows에서 64 비트 및 32 비트로 테스트되었습니다. Juno Classic , Juno 모델링 도구 , Kepler Standard , Kepler 모델링 도구 의 새로 설치를 테스트 했으며 동일한 오류가 발생했습니다.

이 오류는 clean , install , test , deploy , generate-sources , validate , compile , package , integration-test , verify 및 goal clean과 나머지 목표의 조합으로 나타납니다. 매개 변수 -e-X 와 함께 나타납니다 . m2e 저장소를 삭제하고 처음부터 다운로드하려고 시도했지만 성공하지 못했습니다. 위의 모든 시스템에서 3 개의 다른 컴퓨터와 가상 상자에서 테스트되었지만 동일한 오류가 발생했다고 언급해야합니다.

모든 다른 로그 백을 시도했습니다. 그 해결 (1.0.4에서 1.0.13로) 구성 SLF4J-APIlogback 코어 의존하지만, 모든 생산 같은 오류 :

<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version></version>
</dependency>

모든 다른 (1.6.1에서 1.7.5) slf4j-simple 구성 을 시도했습니다 .

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

모두 다른 시도 (1.6.1에서 1.7.5) log4j-over-slf4j 구성을 시도했습니다 .

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>log4j-over-slf4j</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

모두 다른 시도 (1.6.1에서 1.7.5) slf4j-jdk14 구성 .

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-jdk14</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

모두 다른 시도 (1.6.1에서 1.7.5) slf4j-log4j12 구성 .

<dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-log4j12</artifactId>
     <version></version>
     <scope>compile</scope>
</dependency>

시도 slf4j-nop 1.7.5 구성을 했습니다 .

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-nop</artifactId>
  <version>1.7.5</version>
  <scope>compile</scope>
</dependency>

마지막으로 오류에도 불구하고 로그가 저장되고 인쇄됩니다.


오류를 재현하는 방법

  • Eclipse Juno, Indigo 또는 Kepler 32 또는 64 비트를 다운로드하십시오 (모든 설치에서 동일한 오류가 발생 함).

    • m2e 설치-Eclipse 용 Maven 통합

      또는

    • m2e 버전을 1.1.0.20120530-0009 또는 1.2.0.20120903-1050 또는 1.3.0.20130129-0926 또는 1.4.0.20130601-0317로 업데이트 )


    • 파일-> 새로 만들기-> 기타-> Maven 프로젝트-> 다음 클릭-> 카탈로그에서
      maven-archetype-quickstart 선택 -> 마침을 선택합니다.

      또는

    • 파일-> 새로 만들기-> 기타-> Maven 프로젝트-> 다음 클릭-> 간단한 프로젝트 만들기 (아키 타입 선택 건너 뛰기)-> 완성 아티팩트 정보-> 마침을 선택합니다.

  • 프로젝트-> 다음으로 실행-> 새로 설치 (또는 위에서 언급 한 다른 목표)를 마우스 오른쪽 단추로 클릭하십시오.

콘솔의 첫 번째 줄은

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

PS 기존 프로젝트에서 m2e 버전을 1.1.0.20120530-0009 , 1.2.0.20120903-1050 , 1.3.0.20130129-0926 , 1.4.0.20130601-0317로 업데이트 한 후 동일한 오류가 발생합니다.


업데이트

편집하다

m2e 지원 사이트 :

  • 위의 질문은 m2e 지원 사이트에 버그로 게시되었으며 Igor Fedorenko의 답변은

    이 메시지를 억제 할 즉각적인 계획은 없습니다.

    위의 버그를 보려면 m2e 공식 지원 사이트 를 참조하십시오.


2 편집

  • 상기 에러 표시는 현재 에도 m2e의 버전 1.2.0.20120903-1050

3 편집

  • 상기 에러 표시는 현재 에도 m2e의 버전 1.3.0.20130129-0926

4 편집

  • 상기 에러 표시는 현재 에도 m2e의 버전 1.4.0.20130601-0317

5 편집

                              ***Reported FIXED***
  • 위 오류는 m2e 버전 1.5.0 / Luna M3 ( Target Milestone )에서 수정 된 것으로보고됩니다 . 이 버전은 아직 다운로드 할 수 없습니다.
  • Luna M3 11 월 15 일로 예정되어 있습니다.
  • 최신 개발 빌드는 여기에서 사용할 수 있습니다.
  • m2e 이정표에 대한 자세한 정보는 m2e 기본 저장소 에서 찾을 수 있습니다 .


답변

이 오류도 확인할 수 있습니다.

해결 방법 : 외부 maven 을 사용하는 것입니다. 내장 된 maven 대신 m2eclipse 내부에서 것입니다.

이는 세 단계로 수행됩니다.

1 로컬 머신에 maven을 설치합니다 (테스트 머신은 Ubuntu 10.10 임).

mvn-버전

Apache Maven 2.2.1 (rdebian-4) Java 버전 : 1.6.0_20 Java 홈 : / usr / lib / jvm / java-6-openjdk / jre 기본 로케일 : de_DE, 플랫폼 인코딩 : UTF-8 OS 이름 : “linux” 버전 : “2.6.35-32-generic”아치 : “amd64″제품군 : “unix”

2 외부 에서 Maven 실행 콘솔에서 Maven 실행 방법 연결

> cd path-to-pom.xml
> mvn test
    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Simple
    [INFO]    task-segment: [test]
    [INFO] ------------------------------------------------------------------------
    [...]
    [INFO] Surefire report directory: [...]/workspace/Simple/target/surefire-reports

    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running net.tverrbjelke.experiment.MainAppTest
    Hello World
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec

    Results :

    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [...]

(3) 내부의 m2eclipse에 : 전환 매립 받는다는 지역을 받는다는

  • 지역 받는다는 가정 설치 디렉토리가 어디 있는지 (알아 mvn --version, 나에 대한 구글 MAVEN_HOME나를 위해, 이 절 도와 줬어요 입니다/usr/share/maven2 )
  • 이클립스 메뉴-> 창-> 환경 설정-> 메이븐-> 설치-> 해당 문자열을 입력하십시오. 그런 다음 새로운 외부 전문가로 전환해야합니다.
  • 그런 다음 “maven test”와 같이 프로젝트를 실행하십시오.

오류 메시지가 사라져야합니다.


답변

SLf4J 사이트에는이 문제를 해결하기위한 문서가 있습니다. 나는 그것을 따랐고 이미 가지고 있던 slf4j-api-1.6.1.jar와 함께 slf4j-simple-1.6.1.jar을 내 응용 프로그램에 추가했습니다.

slf4j


답변

Gradle을 사용하는 경우 다음을 추가하십시오.

dependencies {
...
compile "org.slf4j:slf4j-simple:1.7.9"
...
}


답변

Gradle과 동일한 결과로 유사한 오류가 발생했으며 다음과 같이 해결할 수있었습니다.

//compile 'org.slf4j:slf4j-api:1.7.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.1'
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.1'

주석 처리 된 줄은 오류 출력을 일으킨 줄입니다. 나는 이것을 Maven으로 전송할 수 있다고 믿습니다.


답변

maven 종속성 파일에 버전을 지정하지 않았기 때문에 최신 jar를 선택하지 않을 수 있으며 아티팩트 ID
가있는 또 다른 종속성 이 필요합니다 slf4j-log4j12.
이것을 pom 파일에 포함하십시오.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

오류가 여전히 해결되지 않으면 알려주세요.
또한 이 링크 를 볼 것을 권장합니다.


답변

이 코드를 pom.xml 파일에 붙여 넣습니다. 그것은 나를 위해 작동합니다.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.1</version>
    <scope>test</scope>
</dependency>


답변

문제가 드러나는 것을 살펴 보았습니다. 같은 문제로 여기에 오는 다른 사람들에게도이 글이 좋은 읽을 거리가 될 것이라고 믿으십시오.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064