2017-12-05 1 views
1

나는 메이븐 프로젝트를 만들었고 src -> test -> java 아래에 패키지 learnlog4j을 만들었고 그 패키지 아래 테스트 클래스를 만들었습니다. 내용은 다음있다'log4j 시스템을 올바르게 초기화'오류를 해결하는 방법은 무엇입니까?

내가 프로젝트의 루트 아래 log4j.properties를 만들었습니다 - 내가 테스트 클래스를 다음 실행할 때

log4j.rootLogger=INFO, stdout 

log4j.appender.stdout = org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss:SSS} %p [%C{1}] %m%n 

하지만,

public class Log4jExample1 { 
    final static Logger logger = Logger.getLogger(Log4jExample1.class); 

    @BeforeClass 
    public void beforeClass(){ 
     logger.info("IN Before Class"); 
    } 

    @Test 
    public void test1(){ 
     logger.info("IN Test"); 
    } 

    @AfterClass 
    public void afterClass(){ 
     logger.info("IN After Class"); 
    } 
} 

이 제공 오류 -

log4j:WARN No appenders could be found for logger (learnlog4j.Log4jExample1). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

stackoverflow를 통해 검색했지만 도움이되지 않았습니다. log4j.properties이 올바른 위치에 있는지 알려주세요. 또는 교정해야 할 부분이 있으면 알려주십시오. 기본 콘솔 어댑터를 얻는 방법 -

답변

1

당신 CANN은 beforeClass에서

BasicConfigurator.configure(); 

()를 추가합니다.

, 당신의 log4j.properties를 사용
PropertyConfigurator.configure("log4j.properties"); 

자세한 것은 No appenders could be found for logger(log4j)?를 참조하십시오 사용하십시오.

+0

이 파일은'log4j.properties' 파일의 정보를 읽지 않습니다. 기본 설정에 따라 기록됩니다. – TDHM

+0

네, 맞습니다. 죄송합니다. log4j.properties가 콘솔 어댑터를 구성했기 때문에 오해했습니다. 위의 내 대답을 업데이트했습니다. – ma501

관련 문제