[logback-user] Setting log filename during runtime

Jenny jenny_uy81 at yahoo.com
Fri Nov 14 08:07:02 CET 2008


Hi Ceki,

Variable substition wouldn't accomplish what I want to achieve... or would it? :)

My goal is to set the log filename in a dynamic way - retrieve it from an LDAP configuration. I don't want it hardcoded in the logback.xml.

My understanding is that variable substition only works if the variable comes from an external properties file or set in system property.

thanks,
Jenny


--- On Thu, 11/13/08, Ceki Gulcu <listid at qos.ch> wrote:

> From: Ceki Gulcu <listid at qos.ch>
> Subject: Re: [logback-user] Setting log filename during runtime
> To: "logback users list" <logback-user at qos.ch>
> Date: Thursday, November 13, 2008, 4:11 PM
> Hello Jenny,
> 
> Why are you setting the passing value of
> "logFileName" MDC? Just set it as a 
> variable, see http://logback.qos.ch/manual/joran.html and
> search for "Variable 
> substitution".
> 
> HTH,
> 
> Jenny wrote:
> > Hi, I'm not sure if this is the preferred way or
> best practice... but what I did was extend the
> RollingFileAppender and override the getFile() method.
> >  
> > and this getFile() method retrieves / generates the
> log file name.
> >  
> > please let me know if you have better solutions.
> >  
> > thanks,
> > Jenny
> >  
> > =============================================
> > From: Jenny jenny_uy81 at yahoo.com
> > Subject: Re: [logback-user] Setting log filename
> during runtime
> > To: "logback users list" logback-user at qos.ch
> >  
> > Hello,
> > 
> > How can i set the log filename set during the init()
> of my StartupServlet.
> > 
> > I tried using MDC but it's not working for me.
> > 
> > What happens is the file is not created. Instead a
> file with name "%exp{logFileName}" \
> > is created on my web server's bin directory.
> > 
> > In my StartupServlet, I have this init method that
> calls MDC.put().
> > 
> > public void init() throws ServletException {
> > MDC.put("logFileName",
> "c:\\testlogs\\test.log");
> > Logger log =
> LoggerFactory.getLogger(StartupServlet.class); 
> > log.info("This should be logged");
> > }
> > 
> > In my logback.xml, I have a MDC.get().
> > 
> > <appender name="FILE"
> class="ch.qos.logback.core.rolling.RollingFileAppender">
> > <append>true</append>
> > <expression
> name="logFileName">MDC.get("logFileName")</expression>
> > <file>%exp{logFileName}</file>
> > ...
> > 
> > I'm new with logback, thanks in advance for your
> help! I'm trying to follow Ceki's \
> > example in his blog
> http://ceki.blogspot.com/2006/10/repated-configuration-with-joran.
> \
> > html
> > 
> > thanks,
> > jenny
> > 
> > 
> >       
> > _______________________________________________
> > Logback-user mailing list
> > Logback-user at qos.ch
> > http://qos.ch/mailman/listinfo/logback-user
> 
> -- 
> Ceki Gülcü
> Logback: The reliable, generic, fast and flexible logging
> framework for Java.
> http://logback.qos.ch
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://qos.ch/mailman/listinfo/logback-user


      


More information about the Logback-user mailing list