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 > 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-unsubscribe@logging.apache.org For additional commands, e-mail: log4j-user-help@logging.apache.org