web-dev-qa-db-ja.com

slf4jおよびlog4j2 Mavenセットアップクエリ

プロジェクトでlog4j2とslf4jを使用し、ビルドにmavenを使用しています。私は次のpomファイルを使用しています(関連する依存関係のみが表示されています)が、このpomファイルで以下にエラーがコピーされています-これを機能させるために追加/削除する必要があるものは何でも考えてください。エラー内のURLとlog4j2の依存関係ページを既に訪問しているので、応答内のURLを指さないでください。

メッセージ:

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ファイル

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

更新: pomファイルに次の依存関係を追加し、mavenrepositoryにjarを表示します-mvn clean/installを実行しても同じメッセージが表示されます

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

あなたはあなたのpomファイルから次のものが欠けているようです。

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

Log4j2の構成は正しい(POM側)が、slf4jに書き込むべき場所(バックエンド部分)を決して言っていない。

それをpomファイルに追加する必要があります

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

Log4j 2 SLF4Jバインディングです。 Log4j 2 SLF4J Binding documentationによれば、Log4j 2 SLF4J Bindingにより、SLF4J APIにコーディングされたアプリケーションはLog4j 2を実装として使用できます

それでも動作しない場合、Eclipse m2eはslf4jに関して奇妙であることが知られているため、Eclipseの問題が発生する可能性があります。 SO SLF4J:クラス“ org.slf4j.impl.StaticLoggerBinder”のロードに失敗しました。エラー の回避策は、外部のMavenを使用してビルドを行います。

7
Serge Ballesta

Log4j-slf4j-impl依存関係とは別に、slf4j-ext依存関係も必要です。

http://logging.Apache.org/log4j/2.x/log4j-slf4j-impl/dependencies.html を参照してください

1
Remko Popma

あなたの最初のpom.xmlが正しいと思う(依存関係が正しい)、おそらく設定ファイルの場所が間違っている

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