2012-04-26 5 views
1

내 Struts 프로젝트에서 로거를 사용하고 있습니다. WSAD 서버를 디버그 모드로 실행하고 있습니다. 아래 조건은 만족 스럽지만 콘솔에 로그 정보를 출력하지 않습니다.로그 정보가 콘솔에 출력되지 않습니다.

if(count.intValue() > 1) 
{ 
    if (log.isDebugEnabled()) 
     log.info("many"); 

    return mapping.findForward("many"); 
} 

여기서 로거 레벨을 INFO로 설정합니다.

+0

반 직관적 들여 쓰기를 사용하여 독자를 혼란스럽게합니까? –

+0

어긋나는 방법. 초로 조건도 포화. 그러나 log.info는 콘솔에 인쇄되지 않습니다. – Mdhar9e

+2

아마도 로깅 수준이'INFO'으로 설정 되었기 때문에'isDebugEnabled'가'false'를 리턴 할 수 있습니까? – Jesper

답변

3

A "낮은"로깅 수준은 모든 "높은"수준을 포함하면 DEBUG에 레벨을 설정할 때, 당신은 또한, 정보를 얻을 메시지를 경고 및 오류거야 예를 들어 의미

ERROR > WARN > INFO > DEBUG 
highest ------------ lowest 

; 당신이 INFO로 설정하는 경우, 당신은 오류를 볼 수 있습니다,이 라인에서

찾는 등, 경고 및 정보하지만 디버그 메시지 :

if (log.isDebugEnabled()) 
    log.info("many"); 

여기에서 혼란 당신이 DEBUG 경우 테스트하는 것이있다 수준이 활성화되어 있지만 (isDebugEnabled) 실제로 INFO 수준에 기록됩니다.

그래서, 레벨이 설정되어있는 경우 여기에 무슨 :

  • DEBUG : DEBUG는 정보 메시지를 포함하고 있기 때문에 당신은 메시지가 표시됩니다.
  • 정보 : isDebugEnabled은 레벨이 DEBUG보다 높은 것으로 설정되면 false을 반환하기 때문에 이 아닙니다.이 메시지를 참조하십시오. 즉, if의 문구가 실행되지 않고 메시지가 표시되지 않습니다.
0

Jesper가 말한 것처럼 isDebugEnabled은 최소한 로그 수준이 DEBUG 일 때만 true를 반환하므로이 검사를 제거하거나 로그 수준을 DEBUG으로 설정합니다. DEBUG 수준에는 INFO이 포함되지만 INFO에는 DEBUG이 포함되지 않습니다.

관련 문제