Использование Logback, но Log4j начал показывать WARN no Appenders

Я использую logback для моего ведения журнала, но он работает, однако; на днях я начал получать предупреждение

log4j: WARN Для журнала не найдено ни одного приложения (org.apache.axis.i18n.ProjectResourceBundle). log4j: WARN Пожалуйста, правильно инициализируйте систему log4j.

Я не использую log4j, и я никогда не был с этим проектом. У меня есть logback.xml в папке моих ресурсов.

Любые идеи о том, почему это предупреждение появилось?

Ответ 1

Вы должны использовать библиотеку, которая использует log4j. Можете ли вы опубликовать больше о своем проекте?

Вероятно, вы должны просто поместить мост log4j в путь к классам. Подробнее здесь: http://www.slf4j.org/legacy.html

Банку, которую вы хотите изучить, - 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>

в зависимостях.

Исключение библиотеки (если необходимо) было бы сделано таким образом (это предполагает, что мы говорим о транзитивной зависимости от упомянутой вами банки):

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

Ответ 2

Пришло время узнать, так как сообщение было log4j: WARN Для журнала не найдено ни одного приложения

Я попытался исключить log4j, и я попробовал log4j-over-slf4j.

Затем я запустил mvn dependency: tree и, наконец, узнал, что mye commons-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>