web-dev-qa-db-fra.com

slf4j & log4j2 requête de configuration maven

J'utilise log4j2 et slf4j dans mon projet et j'utilise maven pour la construction. J'utilise le fichier pom suivant (les dépendances correspondantes sont illustrées uniquement), mais l'erreur est copiée ci-dessous avec ce fichier pom - aucune idée de ce que je dois ajouter/supprimer pour que cela fonctionne. J'ai déjà visité l'URL dans l'erreur ainsi que la page des dépendances log4j2, veuillez donc ne pas simplement pointer sur les URL dans votre réponse. 

Message:

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.

fichier pom

<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>

Mise à jour: J'ai ajouté la dépendance suivante à mon fichier pom et je vois le fichier jar dans mon mavenrepository - même si je vois toujours le même message lorsque je lance mvn clean/install

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

Vous semblez manquer les éléments suivants de votre fichier pom. 

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

Votre configuration log4j2 est correcte (côté POM), mais vous ne dites jamais à slf4j où il doit écrire (partie dorsale).

Vous devriez ajouter cela à votre fichier pom 

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

C'est la reliure Log4j 2 SLF4J. Selon Documentation Log4j 2 SLF4J BindingLa liaison Log4j 2 SLF4J permet aux applications codées vers l’API SLF4J d’utiliser Log4j 2 comme implémentation

Si cela ne fonctionne toujours pas, vous pouvez avoir un problème avec Eclipse car Eclipse m2e est connu pour être bizarre concernant slf4j. Selon ce message détaillé de SO SLF4J: Échec du chargement de la classe «org.slf4j.impl.StaticLoggerBinder». error une solution de contournement pourrait consister à utiliser un maven externe pour effectuer la construction.

7
Serge Ballesta

Outre la dépendance log4j-slf4j-impl, vous avez également besoin de la dépendance slf4j-ext. 

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

1
Remko Popma

Je pense que votre premier fichier pom.xml est correct (la dépendance est correcte), peut-être que l'emplacement du fichier de configuration est incorrect

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