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]

Reply via email to