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.