[logback-user] How to reference file one level above the web context

Dawson Mossman dawsonm at lashpoint.com
Tue Nov 9 14:14:08 CET 2010


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: logback-user-bounces at qos.ch [mailto:logback-user-bounces at qos.ch] On
> Behalf Of Dawson Mossman
> Sent: 8. november 2010 15:37
> To: Logback-user at qos.ch
> 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
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user
>
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user


More information about the Logback-user mailing list