2010-05-29 3 views
0

초보자의 log4j 질문 : -내가 변환 패턴저기서 기본 목적을 위해 log4j를 구성

log4j.appender.rollingFile.layout.ConversionPattern=%p %t %c - %m%n 

를하지만 지금 내가 세션 개체에서 사용할 수있는 오류가 사용자 이름뿐만 아니라 함께있는 클래스 이름 (기록 할)뿐만 아니라 해당 이벤트가 발생하는 날짜와 시간. 어떻게해야합니까? 형식 문자열에서 어떤 변경이 필요합니까?

감사합니다 사전에 :)

답변

1

당신이 원하는 대부분의 PatternLayout 문서를 살펴 보자.

당신이 직면하는 두통은 세션에서 사용자 이름을 얻는 것입니다 (Log4j는 자동으로이 작업을 수행 할 수 없습니다). 아마도 NDCs 또는 MDCs을 조사하고 세션 (아마도 서블릿 필터에 있습니까?)에서 이들을 채울 것입니다. 그들은 스레드 당 입니다, 그래서 귀하의 사용자가 같은 범위를 가정하면이 도움이 될 수 있습니다.

+0

안녕하세요 Brian, MDC 또는 NDC 대신 전달하는 사용자 메시지 (사용자 지정 메시지)에서 사용자 이름을 직접 지정해야합니까? – TCM

+0

그렇게 할 수 있다면 가능합니다. 하지만 그 정보가 포함 된 로그 메시지가 필요한 각 메소드에 전달해야합니까? –

1

클래스 이름을 가져 오려면 % l을 (를) 사용할 수 있지만 약간의 성능 저하가 발생합니다. 사용자 이름을 알아 내려면 mapped or nested diagnostic context을 사용하고 패턴 문자열에서 각각 % X 또는 % x을 사용해야합니다.

PatternLayout javdocs를 확인하십시오.

관련 문제