it-swarm.com.de

maven-Setup-Abfrage für slf4j und log4j2

Ich verwende log4j2 und slf4j in meinem Projekt und benutze Maven für den Build. Ich verwende die folgende POM-Datei (nur relevante Abhängigkeiten werden gezeigt), aber ich bekomme den Fehler mit dieser POM-Datei kopiert - jede Idee, was ich hinzufügen/entfernen muss, damit dies funktioniert. Ich habe die URL in der Fehlermeldung sowie die Seite mit den Abhängigkeiten von log4j2 bereits besucht. Zeigen Sie also bitte nicht nur auf URLs in Ihrer Antwort. 

Botschaft:

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.

pom Datei

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <slf4j.version>1.7.7</slf4j.version>
</properties>

   <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>


    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.2.0</version>
    </dependency>

     <dependency>
        <groupId>org.Apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0.1</version>
     </dependency>

     <dependency>
        <groupId>org.Apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0.1</version> 
     </dependency>

Update: Ich habe die folgende Abhängigkeit zu meiner POM-Datei hinzugefügt, und ich sehe die JAR-Datei in meinem Mavenrepository - obwohl ich immer noch dieselbe Meldung sehe, wenn ich mvn clean/install starte

    <dependency>
        <groupId>org.Apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.1</version>
    </dependency>
18
user3813256

Sie scheinen das Folgende aus Ihrer POM-Datei zu vermissen. 

<dependency>
    <groupId>org.Apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.0.1</version>
</dependency>
17
ali haider

Ihre log4j2-Konfiguration ist korrekt (POM-Seite), aber Sie sagen niemals slf4j, wohin sie schreiben soll (Backend-Teil).

Sie sollten dies Ihrer Pom-Datei hinzufügen 

<dependency>
    <groupId>org.Apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.0.1</version>
</dependency>

Es ist die Log4j 2 SLF4J Bindung. Laut Log4j 2 SLF4J Binding-DokumentationDie Log4j 2 SLF4J-Bindung ermöglicht Anwendungen, die mit der SLF4J-API codiert sind, Log4j 2 als Implementierung.

Wenn es immer noch nicht funktioniert, liegt möglicherweise ein Eclipse-Problem vor, da bekannt ist, dass Eclipse m2e bezüglich slf4j ungewöhnlich ist. Gemäß diesem ausführlichen Beitrag von SO SLF4J: Fehler beim Laden der Klasse "org.slf4j.impl.StaticLoggerBinder". Error konnte eine Problemumgehung darin bestehen, einen externen Maven für die Erstellung zu verwenden.

7
Serge Ballesta

Neben der log4j-slf4j-impl-Abhängigkeit benötigen Sie auch die slf4j-ext-Abhängigkeit. 

Siehe http://logging.Apache.org/log4j/2.x/log4j-slf4j-impl/dependencies.html

1
Remko Popma

Ich denke, Ihre erste pom.xml ist korrekt (Abhängigkeit ist korrekt), vielleicht ist der Speicherort der Konfigurationsdatei falsch

pom.xml  

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>org.Apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.Apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.7</version>
    </dependency>
0
joker zhang