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.