commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Kolinko <>
Subject Re: [daemon] Odd user.dir behaviour with procrun / log4j
Date Fri, 26 Aug 2011 21:51:41 GMT
2011/8/19 Jacob Zwiers <>:
> I have installed a java batch process using the version of procrun that ships with tomcat
>   Commons Daemon Service Runner version (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 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 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 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 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:
For additional commands, e-mail:

View raw message