Fud, 

It sounds obvious but you have to initialise your system property before you 
initialise logback. 

Logback initialises the first time LoggerFactory.getLogger() is called. So if 
you have you logger as a static member in your main class then it's going to 
get initialised too soon. 

In your main class you can have a logger member, but have it initially set to 
null. In your main method work out you app base property. Then do 'log = 
LoggerFactory.getLogger(...)'. 

I do some something like this and it works for me. 

David

On 5 Aug 2010, at 16:29, fudmail <[email protected]> wrote:

> I believe my logback configuration issue should be common but I am
> unable to find a satisfactory resolution.
> 
> I'll first describe what I'm trying to achieve.
> 
> I have a simple application that is deployed somewhere on the file
> system as follows:
> 
> MyApp
> |- bin
>   |- myExecJar.jar
> |- lib
> |- conf
>   |- logback.xml
> |- logs
> 
> At runtime my application computes the absolute path of the MyApp
> directory (e.g., /home/user1/apps/MyApp) using reflection. A system
> property called "app.base.path" is set to this computed path.
> 
> This path is computed so that some other misc. paths are resolved
> relative to the value of "app.base.path" and are independent of the
> working directory (i.e., the value of the "user.dir" property) that
> the application was started from.
> 
> In my logback.xml configuration file I have the line
> <file>${app.base.path}/logs/logback.log</file>
> to specify where the log file will be written to.
> 
> My problem is this. Upon running "java -jar myExecJar.jar", the
> logback.xml file is read from the classpath (set in the jar manifest)
> and processed before my code gets the chance to programmatically set
> the "app.base.path" property. I therefore end up with a directory
> being created as follows
> "/home/user1/apps/MyApp/bin/app.base.path_IS_UNDEFINED
> logs/logback.log".
> 
> Any suggestions on the best way to achieve what I'm trying to do in logback?
> 
> Thank you.
> _______________________________________________
> Logback-user mailing list
> [email protected]
> http://qos.ch/mailman/listinfo/logback-user
_______________________________________________
Logback-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-user

Reply via email to