2014-01-15 2 views
0

Почему log4j.xml не может прочитать значения тегов?Почему log4j.xml не может прочитать значения собственных тегов свойств

IAM получать ниже исключения:

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> 

пожалуйста, предложите мне, что пошло не так?

EDIT: Иам довольно уверен, что вероятностный не о правах доступа, так как при использовании непосредственно как <param name="file" value="D:/logs/debug.log" /> то его работает отлично для меня .. Теперь скажите, пожалуйста, что может быть Актуальным вопросом для него? почему log4j.cml не может прочитать значение свойства при использовании ${somepropertyname}

+0

Довольно ясно, '(Доступ запрещен)'. Проверьте местоположение и разрешения вашего файла. –

+0

@SotiriosDelimanolis Я добавил «Редактировать» выше, пожалуйста, любезно проверьте. – user3128668

+0

Вы задали переменную $ {logging.folder} где-нибудь. Похоже, что проблема с разрешениями заключается в том, что он пытается записать в файл с именем debug.log в корневом каталоге, а не в файл/logs – Goibniu

ответ

0

Если вы используете какой-то Linux, тогда chmod ваш файл будет доступен (например, chmod 777 debug.log). Если вы используете окна, проверьте, можно ли записать debug.log или нет. (К сожалению, я понятия не имею о Mac, но вы получаете суть)

+1

OS X - UNIX (BSD с модифицированным микроядром MACH), поэтому chmod будет работать там также , – Goibniu

0

Элемент Properties не поддерживается в log4j-1.2 (по крайней мере, он не находится в log4j.dtd). Однако, Properties элемент являетсяsupported in log4j-2.0 configuration. Возможно ли, что у вас эти два смешались?

Смежные вопросы