Thanks for the advice. In the end, I loaded the logback config file myself programmatically which allowed me to store and retrieve it from where I wanted.

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
        try {
          JoranConfigurator configurator = new JoranConfigurator();
          configurator.setContext(lc);
// the context was probably already configured by default configuration rules
          lc.reset();
configurator.doConfigure(realPath + "/" + this.getInitParameter("logback_filename"));
        } catch (JoranException je) {
          // StatusPrinter will handle this
        }


On 09/11/2010 4:45 AM, Thorbjørn Ravn Andersen wrote:
There is no guarantee where the current working directory is set for a web
application (which is what a relative path works from).

You can, however, ask the JVM where it got the byte code from for a given
class, by using  http://www.exampledepot.com/egs/java.lang/ClassOrigin.html

// Get the location of this class
   Class cls = this.getClass();
  ProtectionDomain pDomain = cls.getProtectionDomain();
   CodeSource cSource = pDomain.getCodeSource();
   URL loc = cSource.getLocation();  // file:/c:/almanac14/examples/

(works for jar files too).

You can then make the information available to logback and refer to
${myvariable}/logback.properties.

/Thorbjørn

-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Dawson Mossman
Sent: 8. november 2010 15:37
To: [email protected]
Subject: Re: [logback-user] How to reference file one level above the web
context

Has anyone had to do this type of thing before?  If I cannot use a
relative path, are there recommendations for an alternative approach?


On 05/11/2010 5:24 PM, Dawson Mossman wrote:
I am trying to use the<property file="logback.properties" />  tag in
my logback.xml file to reference an external settings file.  I want to
use a relative path and specify the file one level above my
application context. For example:

<web server root>/apps/myapplication/web-inf/classes/logback.xml

I want to put the logback.properties file at<web server root>/apps/.
Do you know what relative path I need to use to do this?

I've tried everything I can think of, including the following, but
they did not work:
<property file="../logback.properties" />
<property file="../../../logback.properties" />
<property file="/logback.properties" />
<property file="./logback.properties" />

Please help ... there has to be a way without using an absolute path!
Dawson
_______________________________________________
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
_______________________________________________
Logback-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-user

Reply via email to