2013-10-20 1 views
-1

흥미로운 질문이 있습니다. 현재 저는 여러 Java 클래스와 Spring Hibernate 조합으로 구성된 Java 프로젝트를 작업 중입니다. 이 프로젝트는 나보다 일찍 많은 개발자가 만들었으며, 지금은 을 이해하기 위해 프로젝트를 디버그하고 흐름을 이해하기 위해 로그를 확인해야합니다. 에로그에서 호출되는 Java 클래스 이해하기

log4j.rootLogger=DEBUG,ERROR,CONSOLE 

: 지금 내 쿼리 내가이로 설정한다는 것입니다

log4j.rootLogger=ERROR, CONSOLE 

명확하게 가장 높은 우선 순위가 수준을 ERROR로 제공되는 것을 말한다 : logs.properties에서 나는 루트 수준에서이 설정을 발견 DEBUG의 우선 순위를 높이기 위해 DEBUG를 놓으십시오. 왜냐하면 플로우가 움직이는 동안 백그라운드에서 자바 클래스가 차례로 호출되는 로그를 체크하고 싶기 때문입니다. Java 클래스에서 log.debug 문이 있는지 확인했습니다. 이게 맞습니까?

답변

0

무엇을 의미하는 것으로 생각하십니까? log4j.rootLogger=ERROR, CONSOLE. 우선 순위에 대해서는 아무 것도 말하지 않습니다. 사실, 우선 순위는 레벨의 맥락에서 의미가 없습니다. 사실, 루트 로거 (모든 로거를 상속 함)의 로깅 레벨은 "ERROR"입니다. 즉, 기본적으로 ERROR 및 상위 레벨 (즉,보다 심각한) 로그 이벤트 만 처리됩니다. (또한 루트 로거에 "CONSOLE"appender를 첨부했습니다 ...)

따라서 log4j.rootLogger=DEBUG,ERROR,CONSOLE을 쓸 때 실제로 의미가 없습니다. LEVEL이 DEBUG와 ERROR 둘 다라고 말하고 있지만 ... 둘 다 될 수는 없습니다. (무엇 실제로 일어나는 것은 누구의 추측이다 ... 그것은 사양의 외부에 있기 때문입니다.) 당신이 이 할을 시도하고있는 무슨에 관해서는


:

을 ... 앞서 DEBUG를 유지하고있다 디버그의 우선 순위를 높이기 위해, 내가 흐름을 옮기고있는 백그라운드에서 자바 클래스가 하나씩 호출되는 것을 로그에서 체크하고 싶다. 그리고 자바 클래스에서 log.debug 문이 있는지 체크했다.

"문장"의 의미를 이해하는 데 큰 어려움이 있습니다. 그러나 로그 이벤트가 로그에 표시되는 순서에 영향을 미치려고하면 운이 없게됩니다. 그들은 (대략) Logger 전화가 주문 된 순서대로 나타나며 (AFAIK) 주문을 변경하기 위해 할 수있는 일이 없습니다.

(AFAIK, 로그 이벤트 순서가 동시성 병목 현상을 수반 엄격한 시간적 순서를 보장 "최선의 노력"., 그리고 로깅하는 것은 부당 애플리케이션 처리량에 영향을주는 경우 사람들이 그것을 좋아하지 않는다.)

+0

감사합니다 그래서 수 많은 당신은 클래스가 다른 클래스보다 하나씩 호출되는 방법을 연구하고 싶기 때문에 레벨을 디버그 모드로 설정해야한다고 조언합니다. –

+0

기본적으로 기본적으로 디버그 레벨을 설정하고 싶습니다 ..! –

+0

'log4j.rootLogger = DEBUG, CONSOLE' –

관련 문제