2012-11-28 3 views
0

log4j 로거를 일반 클래스에 추가하려고하면 로그가 생성되지 않습니다. 이것은 사용 된 코드입니다. 클래스가 런타임 및 내가 새로 생성 된 클래스에 더 이상 결의를 준 일반 이름까지 인스턴스화되지 않기 때문에이 코드가 실패 이유를 추측하고Java "일반 클래스"에서 log4j 로거 호출

public class GenericClass<K extends Serializable, V extends Serializable> extends ... { 
     public static Logger log = Logger.getLogger(GenericClass.class.getName()); 

이다.

제네릭 클래스를 전혀 기록 할 수있는 방법이 있습니까?

+0

더 많은 정보를 제공하기 위해 게시 할 수있는 관련 구성 (예 : log4j.properties 또는 logback.xml 또는 기타)이 있습니까? –

+0

왜 getLogger (GenericClass.class) 대신 getLogger (GenericClass.class.getName())를 사용하고 있습니까? –

+0

@ChristopherMartin 내 잘못, 모든게 잘 작동합니다. 웬일인지 내가 환각을 느낀다. 서버에 잘못된 ear 파일을 넣었습니다. 미안 해요 :-(getName() 것은 그냥 오래된 habbit입니다 . – mohit052

답변

2

제네릭은 이와 관련이 없습니다.

런타임시 x.y.z.GenericClass (은 GenericClass이있는 패키지 임) 이름의 로거입니다. 아무것도 기록되지 않으면 응용 프로그램이 아무것도 로깅하지 않았거나 Log4J 구성에 결함이 있기 때문입니다.

어느 것이 맞는지 결정하려면 -Dlog4j.debug=true을 서버 초기화 매개 변수에 추가하고 시도하십시오.

+0

내 잘못, 모든 일이 잘됩니다. 내가 몹시 놀랐습니다. 서버의 잘못된 이어 파일을 넣었습니다. 미안 해요 :-( – mohit052

관련 문제