You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-user@logging.apache.org by DevGoon <vm...@yahoo.com> on 2010/08/20 22:51:53 UTC

Multi Threaded Apps and ThreadContext.

I would like to create a new file per thread so I thought using ThreadContext
and update a property would do the trick.  I does create the files, however
all the threads write to the last file created.  Not the behavior I was
expecting.  Thoughts anyone?  Code is below.

 public class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 5; i++)
            {
                Thread thread = new Thread(new Logger().Log);
                thread.Start();
            }
        }
    }
    public class Logger
    {
        public void Log()
        {
         

            log4net.ThreadContext.Properties["LogName"] =
String.Format("{0}.log",                     
               Thread.CurrentThread.ManagedThreadId);

            log4net.ILog _logger = LogManager.GetLogger(
               Thread.CurrentThread.ManagedThreadId.ToString());
            
            log4net.Config.XmlConfigurator.Configure();
            
            _logger.Info("Hello from Thread ID " +
Thread.CurrentThread.ManagedThreadId);

            Random rand = new Random();
            for (int i = 0; i < 500; i++)
            {
                Thread.Sleep(rand.Next(500));
                _logger.Info("Data from Thread ID " +
Thread.CurrentThread.ManagedThreadId);
            }
        }
       
    }

************** log4net config *****************************
 <appender name="RollingLogFileAppender"
type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString"
value="C:\log\%property{LogName}" />
      <appendToFile value="false" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger
[%property{NDC}] - %message%newline" />
      </layout>
    </appender>
-- 
View this message in context: http://old.nabble.com/Multi-Threaded-Apps-and-ThreadContext.-tp29495588p29495588.html
Sent from the Log4net - Users mailing list archive at Nabble.com.