java – log4j:ERROR setFile(null,false)调用失败

我面临一些奇怪的错误,如下所示

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

的src / main /开发/环境的/ dev / config.properties

logging.folder=D:/logs

的log4j.xml

<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>

maven.xml(未完成)

<filters>
            <filter>src/main/environment/dev/config.properties</filter>
        </filters>

当我直接使用< param name =“file”value =“D:/logs/debug.log”/> ,它的工作正常,但是当我使用< param name =“file”value =“${logging.folder} /debug.log”/>我超越了例外..

我非常确定属性文件中的值能够读取,因为我的一个java文件只能从这个属性文件中读取值..那么为什么这个log4j.xml文件能够读取呢?

请问我出了什么问题?

解决方法:

除了Chandra的回答,我在Windows 7上的Eclipse中遇到了同样的异常:

C:/myfile.log                     // access denied...

但是当我创建一个具有我的用户ID权限的文件夹时,它工作正常:

 C:/myLogs/myfile.log             // it wasn't necessary to create the file

我还注意到必须使用正斜杠指定路径.

上一篇:Log4net日志


下一篇:C#之MVC中使用Log4Net