Yair, first of all, thanks for your answer.

Ho about creating a Logger in ThreadLocal with a unique name that is based
on the thread name?

Apologies for this basic question, but how can I do this?

Just passing a new name to getLogger()?

  http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html

More importantly, how can I dispose of the logger? Otherwise the number of
open loggers grows with the number of threads run.

Thanks,
Kaspar

On Sat, May 2, 2009 at 5:53 PM, Kaspar Fischer <fisch...@inf.ethz.ch> wrote:

Dear list,

I am looking for a way to create a log file per thread (actually, per
Quartz job that gets run).

I've googled quite a bit and found a few approaches, in particular
KeyFileAppender [1]. All I have seen seem to rely on the MDC and
KeyFileAppender seems to have a resource leak [2].

I am wondering whether there is a simply way to programmatically create, at the beginning of my thread, a logger with a given name and closing it at the
end of the thread. Has anybody accomplished something like this?

public void run()
{
   String id = ...; // thread name or whatever
   Logger logger = ...; // Create a logger with a basename and the id
   try
   {
     // ...
   }
   finally
   {
     logger.close(); // Something like this is needed to make sure
                     // old logs do not keep hanging around
   }
}

Many thanks,
Kaspar

[1] https://issues.apache.org/bugzilla/show_bug.cgi?id=19597
[2]
http://www.mail-archive.com/log4j-user@logging.apache.org/msg07295.html

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to