Я установил пакетный процесс Java с использованием версии procrun, поставляемой с tomcat 5.5.33:
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
и File, которые утверждают, что делают пути относительно местоположения user.dir
.
Я работал над этой проблемой, но мне любопытно: кто-нибудь еще сталкивался с таким типом поведения? Если так, что на самом деле происходит?