2011/8/19 Jacob Zwiers <[email protected]>: > I have installed a java batch process using the version of procrun that ships > with 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. > > In the installation, I specify (among other JVM options): > --JvmOptions="-Duser.dir=C:\LOCAL\serverapps" > > My log4j.properties configuration includes: > log4j.appender.InfoLogFile.File=../logs/info.log > > However, the info.log file is being written to: > C:\WINDOWS\logs > > I've checked the value of user.dir at many different points and it's always > "C:\LOCAL\serverapps". > > But, log4j is behaving as if user.dir="C:\Windows\System32" (or some other > subir of C:\Windows). > > From what I can tell from the log4j source (1.2.16), the FileAppender deals > only with the java.io.FileOutputStream and File classes which claim to make > paths relative from the user.dir location. > > I've worked around the issue, but I am curious: has anyone else has > encountered this type of behaviour? >
1. I think java.io uses OS-level API to open files and resolve non-absolute paths into absolute ones, and your hacky attempt to set user.dir property does not affect OS. 2. There is --StartPath option in procrun (see SO_STARTPATH in prunsrv.c). I think it might be that it will allow to configure working directory. I have not tested though. 3. I might be that you can define your own variable and reference it in log4j.properties. I have not tested it though. You wrote that you have already worked around your original problem. Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
