2014-07-15 2 views
0

데스크탑 응용 프로그램에서 log4j를 사용하고 있습니다.log4j가 Netbeans에서 잘못된 속성 파일을 사용합니다.

일반적으로 장애없이 작동합니다. 그러나 최근에는 넷빈즈가 로깅을 멈췄습니다. 넷빈즈 자체가 만든 이클립스와 병은 완벽하게 기록됩니다.

log4j의 디버그 모드를 사용하여 Netbeans에서만 잘못된 속성 파일을 사용하여 log4j의 원인을 추적했습니다. 소스 폴더에 제공된 것을 사용하는 대신, 어떤 이유로 종속성 내부의 특성 파일을 사용합니다.

다시 : Netbeans에서만 발생합니다. 누구든지 log4j가 올바른 파일을 가리킬 수있는 방법을 알고 있습니까? 왜 이것이 정확히 발생합니까?

편집 : 이제 Netbeans의 이상한 우선 순위에 대한 이유를 알고 싶지만 log4j에 올바른 속성 파일을 수동으로 제공하고 있습니다.

답변

1

파일 log4j.xmllog4j.properties보다 priority이 더 많습니다.

103  // if the user has not specified the log4j.configuration 
104  // property, we search first for the file "log4j.xml" and then 
105  // "log4j.properties" 

따라서 현재 속성 파일을 XML 스타일 파일로 변환해야합니다. 예 :

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" 
            "log4j.dtd" > 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <!-- console --> 
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> 
    <param name="threshold" value="TRACE" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="conversionPattern" 
     value="%d{yyyyMMdd-HHmmss.SSS} %-5p (%c.java:%L).%M - %m%n" /> 
    </layout> 
    </appender> 

    <!-- file --> 
    <appender name="ROLLOUT" class="org.apache.log4j.RollingFileAppender"> 
    <param name="file" value="/tmp/output.log" /> 
    <param name="maxFileSize" value="1MB" /> 
    <param name="maxBackupIndex" value="5" /> 
    <param name="threshold" value="DEBUG" /> 
    <param name="encoding" value="UTF-8" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="conversionPattern" 
      value="%d{yyyyMMdd-HHmmss.SSS} %-5p (%c.java:%L).%M - %m%n" /> 
    </layout> 
    </appender> 

    <!-- categories --> 
    <category name="org.apache.commons"> 
    <priority value="OFF" /> 
    </category> 
    <category name="org.hibernate"> 
    <priority value="OFF" /> 
    </category> 

    <!-- root --> 
    <root> 
    <priority value="TRACE" /> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="ROLLOUT" /> 
    </root> 

</log4j:configuration> 
+0

이렇게하면 문제가 해결되지만 Netbeans이 원본 폴더의 속성보다 종속성 우선 순위의 속성 파일을 제공하는 이유는 여전히 이해할 수 없습니다. 추신 : 나는 당신의 솔루션이 더 우아하더라도 log4j가 올바른 속성 파일을 수동으로 읽음으로써이 문제를 해결했습니다. – Dragondraikk

관련 문제