Я пытаюсь писать лог-файл для каждого пользователя отдельносвойства Log4Net является перезапись для одновременных запросов
Для этого я устанавливаю свойство имени файла в качестве текущего идентификатора пользователя и настройки log4net как этот
log4net.GlobalContext.Properties["userid"] = userId;
log4net.Config.XmlConfigurator.Configure();
Все это хорошо работает, он создает новый файл журнала для каждого пользователя и регистрирует все действия пользователя в отдельных файлах.
Проблема начинается, когда несколько пользователей запрашивают услугу одновременно, а затем начинает вставлять часть журналов одного пользователя в другой файл пользователей, поэтому все журналы смешиваются в файлах одновременных пользователей.
Я получаю причину, что глобальные настройки становятся переопределенными пользователем2, в то время как пользователь1 выполняется, поэтому user1 начинает записывать журналы в файл user2, поскольку настройки теперь переопределены.
Я пробовал log4net.LogicalThreadContext
и log4net.ThreadContext
также, но они также не работали.
Есть ли обходной путь для этого?
См. Http://piers7.blogspot.co.uk/2005/12/log4net-context-problems-with-aspnet.html – sgmoore