我面临一些奇怪的错误,如下所示
log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException: \debug.log (Access is denied)
src / main / dev / environment / 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>
当iam直接使用<param name="file" value="D:/logs/debug.log"/>
时,它的工作正常,但是当我使用<param name="file" value="${logging.folder}/debug.log"/>
iam获得上述异常时...
请告诉我出了什么问题?
答案 0 :(得分:2)
除了Chandra的回答,我在Windows 7上的Eclipse中遇到了同样的异常:
C:/myfile.log // access denied...
但是当我创建一个具有我的用户ID权限的文件夹时,它工作正常:
C:/myLogs/myfile.log // it wasn't necessary to create the file
我还注意到必须使用正斜杠指定路径。
答案 1 :(得分:1)
使用正斜杠('/')代替反斜杠('\'),无论您在哪里定义此路径$ {logging.folder}。那是我在那里看到的错误:
你在这里使用反斜杠:
java.io.FileNotFoundException:\ debug.log(访问被拒绝)
所以你的路径应该是这样的: logging.folder = D:/ logs /
答案 2 :(得分:0)
对于日志记录,我使用属性文件,我使用以下配置来解决同样的问题。当我使用 tomcat服务器时,我使用${catalina.base}
来获取tomcat基目录。
log4j.appender.FILE.File=${catalina.base}/logs/debug.log
对于xml配置,syntex可能类似于以下
<param name="file" value="${catalina.base}/debug.log"/>
如果您正在使用 Tomcat ,那么希望它能够正常运作。
答案 3 :(得分:0)
此问题与削减人无关。 这行错误:
java.io.FileNotFoundException:\ debug.log(访问被拒绝)
告诉我们它正在尝试在根目录中创建debug.log文件(\表示根目录) 显然它将无法访问,因此访问被拒绝。
就我而言,我通过在启动服务器之前添加VM参数来解决此问题。就是这样。
-Dlogging.folder=C:\Program Files\wildfly-14.0.1.Final\standalone\log
,将路径更改为您服务器的位置)“ {{1}}”