2013-01-03 3 views
0

Log4J 로거 클래스를 확장하고 로깅할지 여부를 결정하는 사용자 정의 로거 클래스를 만들었습니다.Log4j 확장 로거

내 패턴 레이아웃에는 로그가 실행 된 클래스 이름과 메소드 이름을 표시하는 %F%M 매개 변수가 있습니다.

문제는 예외 호출자 클래스와 메서드 이름을 표시하는 대신 내 사용자 지정 로거의 클래스 및 메서드 이름을 표시한다는 것입니다.

올바른 정보를 표시하려면 무엇을해야합니까?

답변

0

클래스를 forcedLog() 메서드의 정규화 된 클래스 이름으로 제공해야합니다.

private static final String FQCN = MyCustomLogger.class.getName(); 

... 

public void info(Object message) { 
    if(repository.isDisabled(Level.INFO_INT)) 
     return; 
    if(Level.INFO.isGreaterOrEqual(this.getEffectiveLevel())) 
     forcedLog(FQCN, Level.INFO, message, null); 
} 

.... 

필자가 필터링하려고 시도하는 것이 확실하지 않지만 로거를 확장하는 대신 필터를 사용하는 것이 좋습니다.

관련 문제