[logback-user] Setting log filename during runtime

Jenny jenny_uy81 at yahoo.com
Thu Nov 13 03:18:21 CET 2008


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


      


More information about the Logback-user mailing list