この質問は何度も聞かれたようです。しかし、私が試したすべてのソリューション(ほとんどの場合、log4j.propertiesファイルが正しい場所にあり、正しく入力されていることを確認してください)が私の場合は機能しません。log4j:WARNロガーのアペンダーが見つかりませんでした - slf4j-log4j12を使用しています
私はmavenプロジェクトを持っています。私は私のテストのためにlog4jを使用したいと思います。テストクラスは、ロガーが使用されるsrc/main/javaで定義されたヘルパーメソッドを使用します。私は
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
を輸入していると私は私がSRC /メインの両方に含めましたロガー
private static final String TAG = Helper.class.getSimpleName();
private static final Logger logger = LoggerFactory.getLogger(TAG);
をインスタンス化している(SRC /メイン/ javaの/に)私のヘルパークラスで
/資源とのsrc /テスト/リソース以下log4j.propertiesは、私はSLF4Jの依存関係を含めました私のPOMで
### set log levels - for more verbose logging change 'info' to 'debug' ###
### Also add logfile to the root, if need stdout then add stdout appender here###
log4j.rootLogger=debug, stdout
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd-mm HH:mm:ss,SSS} %p/%c{1}:%L - %m%n
を提出します私のヘルパークラス内のコードで
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
私は、このようにロガーを使用
logger.debug("logger test...");
何のメッセージがコンソールに印刷されていないと私は、次の警告メッセージ
log4j:WARN No appenders could be found for logger (Helper).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
何を得るされています私は行方不明ですか?
更新
問題は、log4jの-のtest.xmlにlog4j.configurationプロパティを設定し、プロジェクトのオプションに関連していました。次のプラグインをプロジェクトmaven pomに追加しました。これで問題は解決しました。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<systemPropertyVariables>
<log4j.configuration>log4j.properties</log4j.configuration>
</systemPropertyVariables>
</configuration>
</plugin>
追加 '-Dlog4j.debug' JVM引数にlog4jがピックアップしている正確な構成ファイルを確認する –