
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.