为什么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>
请告诉我出了什么问题?
修改
我很确定问题不是关于权限,因为当我直接使用<param name="file" value="D:/logs/debug.log" />
时它对我来说工作正常..现在请告诉我它可能是什么实际问题?使用${somepropertyname}
答案 0 :(得分:0)
如果你正在使用某种类型的Linux,那么chmod你的文件是可访问的(&#34; chmod 777 debug.log&#34;例如)。 如果您使用的是Windows,请检查是否可以写入debug.log。 (可悲的是我不知道Mac,但你得到了要点)
答案 1 :(得分:0)
log4j-1.2不支持Properties
元素(至少它不在log4j.dtd中)。
但是,Properties
元素是 supported in log4j-2.0 configuration。是不是有可能让这两个人混淆了?