2009-07-07 6 views
9

나는 결국 Tomcat/JBoss 내부에서 실행되도록 개발중인 app에서 log4j를 사용하고 있지만 지금은 Eclipse 내부에서 실행 중입니다. Log4j.xml 파일을 사용하여 ConsoleAppender에 쓰도록 구성했으며이를 시스템 등록 정보로 전달하여 모든 로깅 결과를 출력합니다.불필요한 log4j 설정 출력 제거

문제는 log4j가 실제로 볼 필요가없는 (또는 원하는) 부트 스트랩/시작 가비지를 내뱉습니다. 예를 들어 :

log4j: Retreiving an instance of org.apache.log4j.Logger. 
log4j: Setting [CoherenceMonitor] additivity to [false]. 
log4j: Level value for CoherenceMonitor is [DEBUG]. 
log4j: Desired Level sub-class: [org.apache.log4j.Level] 
log4j: CoherenceMonitor level set to DEBUG 
log4j: Class name: [org.apache.log4j.ConsoleAppender] 
log4j: Setting property [target] to [System.out]. 
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout" 
log4j: Setting property [conversionPattern] to [%-5p %m%n]. 
log4j: Adding appender named [console] to category [CoherenceMonitor]. 

나는 내 프로그램을 실행이 때마다 약 20 라인을 얻을, 그것은 정말 걱정 로그 데이터를 가린다 단지 소음입니다. 내가 원하는 것은이 출력 ("log4j:"으로 시작하는 모든 것)을 억제하고 내 자신의 로깅 명령문의 출력 만 포함시키는 것입니다.

아래와 같이 org.apache 카테고리의 우선 순위 값 설정을 비롯하여 Google 및 동료를 통해 내가 찾은 모든 것을 시도했습니다. 내가 log4j 구성 꽤 초보자이야

<category name="org.apache"> 
    <priority value="FATAL"/> 
</category> 

(에 관계없이 내가 설정 한 우선 순위, 나는 아직도. 출력을 얻을), 그리고 광산은 아주 간단합니다. 나는 하나의 appender, 하나의 logger, 그리고이 하나의 카테고리를 가진다. log4j를 설치하는 동안 입을 막아 두는 데 도움이된다면 많은 도움이 될 것입니다! :-)

답변

14

이것은 로거 자체의 디버그처럼 보입니다. XML 설정을 사용하는 경우 다음과 같습니다.

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

디버그를 false로 설정합니다. 당신의 log4j.xml가 debug="true" 속성이있는 경우 (Eclipse에서이 -Dlog4j.debug의 값으로 실행 구성 JVM으로 인수에 나타납니다)이 log4j.debug 시스템 매개 변수가 설정되어 있지 않은지 확인도 확인 게다가

+0

음 ... 와우. 나는 내가 모든 것을 점검했다고 생각했다. 내가 어떻게 그것을 놓쳤는 지 모른다. 그것이 바로 그 것이 었습니다. 그러나 몇몇 동료가 내 log4j.xml을 살펴 보았고 어느 쪽도 보지 못했다는 것을 알았습니다. 감사! –

+0

나는 방금 로깅을 싸우는 데 반나절을 보냈다. 그렇지 않으면 나는 어느 것도 알지 못했다. :) – javamonkey79

3

.

+0

또한 훌륭한 제안이다. 내 문제는 log4j.xml에 있었지만 이클립스에서만 문제가 발생했는지 알아 보는 것이 매우 유용하다. 감사! –

관련 문제