2014-01-15 2 views
0

왜 log4j.xml은 태그 값을 읽을 수 없습니까? 예외 아래 점점왜 log4j.xml은 자체 속성 태그의 값을 읽을 수 없습니다

스피 :

log4j:ERROR setFile(null,false) call failed. 
java.io.FileNotFoundException: \debug.log (Access is denied) 

의 log4j.xml

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration debug="true" 
    xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <Properties> 
     <Property name="logging.folder">D:/logs</Property> 
    </Properties> 


    <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender"> 
     <param name="append" value="false" /> 
     <param name="file" value="${logging.folder}/debug.log" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="INFO" /> 
     <appender-ref ref="consoleAppender" /> 
     <appender-ref ref="fileAppender" /> 
    </root> 

</log4j:configuration> 

무엇이 잘못되었는지 저를 제안 해주십시오?

편집 : 스피 꽤 확인 확률값은 그때 나에 대한 작업 벌금 .. 지금의 실제 문제가 될 수 있는지 말씀 해주십시오 <param name="file" value="D:/logs/debug.log" />으로 직접 사용하는 경우 때문에, 권한에 대해 아닌가요? 사용하는 경우 log4j.cml이 속성 값을 읽을 수없는 이유는 무엇입니까? ${somepropertyname}

+0

매우 명확하고'(액세스가 거부되었습니다 '). 파일의 위치 및 권한을 확인하십시오. –

+0

@SotiriosDelimanolis 위의 '수정'을 추가했습니다. 친절하게 확인하십시오 .. – user3128668

+0

어딘가에 $ {logging.folder} 변수를 설정 했습니까? 사용 권한 문제는/logs의 파일이 아닌 루트의 debug.log 파일에 쓰려고한다는 것입니다. – Goibniu

답변

0

어떤 종류의 Linux를 사용하는 경우 파일을 액세스 할 수 있도록 chmod하십시오 (예 : "chmod 777 debug.log"). Windows를 사용하는 경우 debug.log를 쓸 수 있는지 여부를 확인하십시오. (슬프게도 나는 Mac에 대해 전혀 모르지만 요점은 알 수있다.)

+1

OS X은 유닉스 (수정 된 MACH 마이크로 커널이있는 BSD)이므로 chmod도 거기에서 작동합니다 . – Goibniu

0

Properties 요소는 log4j-1.2에서 지원되지 않는다 (적어도 log4j.dtd에는 없다). 그러나 Properties 요소 supported in log4j-2.0 configuration입니다. 어떻게이 두 가지가 섞여있을 가능성이 있습니까?