我正在尝试使用log4j日志记录并尝试在我的属性文件中使用${jboss.server.log.dir}
给我一个错误:
log4j:ERROR setFile(null,true)调用失败。 java.io.FileNotFoundException:\ server.log(访问被拒绝)
基本上,我使用的是:
log4j.appender.myappender.File = ${jboss.server.log.dir}/server.log
重点:
1)我可以使用完整路径它会工作,所以我想它不是权限(因为它在我的C盘上)
2)我可以使用${user.home}
,它将采取正确的值并按预期工作(虽然不是我想要登录的位置,但更多的测试,看我正确使用变量)
3)如果我使用\\
(即${jboss.server.log.dir}\\server.log
),我会得到同样的错误。如果我使用//
,我得到指定的路径无效。如果我使用\
,没有任何反应 - 没有错误,没有记录。我使用/
与${user.home}
,这是正常的。请注意,这仅适用于Windows。
我读过this等等,但似乎任何解决方案都无效。
最后一点:启动时,我可以看到${jboss.server.log.dir}
引用的路径是C:\path\to\somewhere
,而我需要在属性文件中硬编码时放入C:\\path\\to\\somewhere
,如果这有任何区别的话。
所以我的问题是:如何使用${jboss.server.log.dir}
代替硬编码完整路径(我不能这样做)?
log4j 2中添加了对环境变量扩展的支持,目前版本为2.10。您是否可以使用早期版本的log4j?