我使用tomcat 5.5.33附带的procrun版本安装了一个java批处理:
Commons Daemon Service Runner version 1.0.5.0/Win32 (Jan 5 2011)
Copyright (c) 2000-2011 The Apache Software Foundation.
在安装中,我指定(在其他 JVM 选项中):
--JvmOptions="-Duser.dir=C:\LOCAL\serverapps"
我的 log4j.properties 配置包括:
log4j.appender.InfoLogFile.File=../logs/info.log
但是,正在将 info.log 文件写入:
C:\WINDOWS\logs
我检查了user.dir
许多不同点的值,它总是C:\LOCAL\serverapps
.
但是,log4j 的行为就像user.dir=C:\Windows\System32
(或其他一些 subir C:\Windows
)。
从我从 log4j 源代码(1.2.16)可以看出,FileAppender
仅处理java.io.FileOutputStream
声称使路径相对于该user.dir
位置的 File 类。
我已经解决了这个问题,但我很好奇:有没有其他人遇到过这种行为?如果是这样,到底发生了什么?