web-dev-qa-db-ja.com

Logbackを使用していますが、Log4jはWARN noAppendersの表示を開始しました

ロギングにログバックを使用していますが、機能しています。先日警告が出始めました

log4j:WARNロガー(org.Apache.axis.i18n.ProjectResourceBundle)のアペンダーが見つかりませんでした。 log4j:WARNlog4jシステムを正しく初期化してください。

私はlog4jを使用しておらず、このプロジェクトを使用したこともありません。リソースフォルダにlogback.xmlがあります。

この警告が表示され始めた理由について何か考えはありますか?

15
Chris Watts

Log4jを使用するライブラリを使用している必要があります。あなたのプロジェクトについてもっと何か投稿できますか?

おそらく、log4jブリッジをクラスパスに配置する必要があります。詳細はこちら: http://www.slf4j.org/legacy.html

調べたいjarはlog4j-over-slf4jです。 log4j APIをブリッジして、slf4j APIの実装(この場合はlogback)を実際に呼び出します。

Mavenを使用してプロジェクトをビルドしている場合は、置くのと同じくらい簡単かもしれません

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

依存関係で。

ライブラリの除外(必要な場合)は、この方法で行われます(これは、前述のjarからの推移的な依存関係について話していることを前提としています)。

    <dependency>
        <groupId>org.Swift.common</groupId>
        <artifactId>jira-soap</artifactId>
        <version>4.4.0</version>
        <exclusions>
            <exclusion>
                <groupId>...</groupId>
                <artifactId>...</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
15
theadam

メッセージがlog4j:WARNであったため、確認するのに少し時間がかかりました。ロガーのアペンダーが見つかりませんでした。

Log4jを除外しようとし、log4j-over-slf4jを試しました。

次に、mvndependency:treeを実行し、最終的にmyecommons-configurationが実際にcommons-loggingを使用していることを発見しました。

[INFO] +- commons-configuration:commons-configuration:jar:1.9:compile
[INFO] |  \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.0.13:compile
[INFO] |  +- ch.qos.logback:logback-core:jar:1.0.13:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] +- org.slf4j:log4j-over-slf4j:jar:1.7.6:compile
[INFO] \- org.Apache.commons:commons-lang3:jar:3.1:compile

これが私にとっての解決策になりました。

    <!-- logging with logback (and slf4j)-->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>
    </dependency>

    <!-- had a dep in commons-configuration -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.6</version>
    </dependency>
6
Avec