Java log4j:错误setFile(null,false)调用失败
我面临一些奇怪的错误,如下所示Java log4j:错误setFile(null,false)调用失败,java,maven,log4j,log4net,Java,Maven,Log4j,Log4net,我面临一些奇怪的错误,如下所示 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.ap
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(不完整)
src/main/environment/dev/config.properties
当我直接使用
时,其工作正常,但当我使用
时,我会遇到上述异常
我非常确定属性文件中的值可以读取,因为我的一个java文件只能读取此属性文件中的值。。那么为什么这个log4j.xml文件不能读取
请告诉我哪里出错了?在定义此路径${logging.folder}时,请使用正斜杠('/')而不是反斜杠('\')。这就是我在上面看到的错误:
您在此处使用反斜杠:
java.io.FileNotFoundException:\debug.log(访问被拒绝)
因此,您的路径应该类似于:
logging.folder=D:/logs/除了Chandra的回答之外,我在Windows 7上的Eclipse中也遇到了同样的异常:
C:/myfile.log // access denied...
但当我创建了一个对我的用户ID有权限的文件夹时,它工作正常:
C:/myLogs/myfile.log // it wasn't necessary to create the file
我还注意到,路径必须用斜杠指定。对于日志记录,我使用属性文件,对于同样的问题,我使用以下配置。当我使用tomcat服务器时,我使用
${catalina.base}
来获取tomcat基本目录。
log4j.appender.FILE.FILE=${catalina.base}/logs/debug.log
对于xml配置,syntex可能如下所示
<param name="file" value="${catalina.base}/debug.log"/>
如果您正在使用Tomcat,那么希望它能起作用。这个问题与slashes人员无关。 此错误行: java.io.FileNotFoundException:\debug.log(访问被拒绝) 正在告诉我们它正试图在根目录(\表示根目录)中创建debug.log文件 很明显,它将无法访问,因此访问被拒绝 在我的例子中,我通过在启动服务器之前添加VM参数来解决这个问题。就这样 示例:(在我的示例中,我使用的是
Wildfly
,请更改服务器位置的路径)
“
-dloging.folder=C:\Program Files\wildfly-14.0.1.Final\standalone\log
”在解释XML属性之前,似乎没有读取config.properties
。我还注意到,您的路径不匹配,并且您没有指定出现错误的环境(是否是未启用dev
的配置?)。@chrylis配置文件“dev”默认启用。。你能告诉我我的问题的解决方案吗?当我直接使用时,它对我来说工作正常..用户3128668-你找到上面的答案了吗?
<param name="file" value="${catalina.base}/debug.log"/>