이 질문은 여러 번 묻습니다. 하지만 내가 시도한 모든 솔루션 (대부분 log4j.properties 파일이 올바른 위치에 있고 올바르게 입력되었는지 확인해야 함)이 제 경우에는 작동하지 않습니다.log4j : WARN 로거에 대한 어펜더를 찾을 수 없습니다 - slf4j-log4j12 사용
나는 메이븐 프로젝트가있다. 내 테스트를 위해 log4j를 사용하고 싶습니다. 테스트 클래스는 로거가 사용되는 src/main/java에 정의 된 도우미 메서드를 사용합니다. 내 도우미 클래스에서
(SRC의/주/자바는 /) 나는
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/테스트/자원은 다음 log4j.properties 내 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
파일 내가 SLF4J에 대한 종속성을 포함 시켰습니다 내 도우미 클래스의 코드에서
<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 구성 파일을 확인하십시오. –