Hi Using an own written RepositorySelector is a reasonably way of having different logger universes within the same JVM. Using the standard selector returns always the same logger instance for a given name, since it it is stored within the unique default repository. A self written selector which want to provied different repositories in different contexts must have some criterias to distinguish this context at the moment when a client requests a logger. If the differentiation can be done by different thread contexts it will be easy. You can use the MDC to store one ore more key ("key=value") words. The MDC is kept per thread basis, so each thread can have its own content of the key words. Your selector returns then the proper repository depending on these context information.
Heri > -----Original Message----- > From: Iyad Elian [mailto:[EMAIL PROTECTED] > Sent: Saturday, July 23, 2005 4:28 AM > To: log4j-user@logging.apache.org > Subject: Appender per Thread (rootLogger contention) > > > Our application starts with a file appender attached to the > rootLogger. > The application executes different commands and some of these commands > request that log be redirected to a separate file for the duration of > the execution of that command. commands that don't specify a > logfile use > the original appender. The master logfile looks like this: > INFO - STARTING command: LogTest > INFO - Redirecting command log output to: /logs/logtest.log > INFO - FINISHED command: LogTest [status=0,elapsed_time(secs)=0] > > works well, except when multiple threads execute commands > concurrently. > The implementation gets the rootLogger and removes the > original appender > and adds the command specific appender, executes the command then > restores the original appender by removing the command appender and > adding the original appender. obviously this won't work if multiple > threads execute the same code but we couldn't figure out a better way. > is there a way like using a RepositorySelector? > > your help is appreciated. > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]