Log4j distinguishes between Loggers and Appenders for a good reason:
  - Loggers define WHAT is logged (level, source)
  - Appenders define WHERE the log statement goes (console, file, etc.) and how 
it is formatted
You want to have a new file for each new thread, so this is an appender issue 
which you cannot solve by creating a new appender. 
Of course you can create a Logger as you suggested, but then you have to pass 
this logger instance along your callstack (or make it globally accessible in 
the current thread context). If you do so you will loose most of the benefits 
which log4j offers. You implement then something like your own logging 
framework, a thing which to avoid was the main goal of inventing log4j.
Follow the suggestion of Jake Kjome to search after this discussions in this 
mailing list and implement your RepositorySelector, based on MDC. There were 
even examples posted.
Heri


-----Ursprüngliche Nachricht-----
Von: Kaspar Fischer [mailto:fisch...@inf.ethz.ch] 
Gesendet: Samstag, 2. Mai 2009 16:54
An: log4j-user@logging.apache.org
Betreff: [SPAM (Bayesain Analysis)] - Log file per thread - Bayesian Filter 
detected spam

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



---------------------------------------------------------------------
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