Registrando em um arquivo de log individual para cada thread individual

Tenho um aplicativo de serviço que na inicialização lê um arquivo XML e inicia um encadeamento para cada entrada no arquivo XML. Cada encadeamento cria uma instância de uma classe de trabalho que requer que um criador de logs registre qualquer saída em um arquivo de log específico do encadeament

Nos serviços app.config, tenho as definições de configuração do log4net definidas para usar um aplicativo XML e o arquivo é especificado como PatternString, como mostrado abaixo:

<appender name="XmlAppender" type="log4net.Appender.FileAppender">
  <file type="log4net.Util.PatternString" value="D:\Temp\Logs\%property{LogName}.log" />
  <immediateFlush value="true"/>
  <appendToFile value="true" />
  <layout type="log4net.Layout.SimpleLayout" />
</appender>

Em um método de thread bloqueado para cada instância da classe de trabalho criada, recebo o criador de logs usando olog4net.LogManager.GetLogger("MyLogger") e, em seguida, defino a propriedade PatternStrings LogName de threads atual usandoThreadContext.Properties["LogName"] = "Log name prefix".

Todos os arquivos são criados, mas quando o logger é chamado, ele registra todas as mensagens em um arquivo aparentemente aleatóri

Pesquisei por um bom tempo tentando encontrar uma solução ou algumas respostas para o que estou fazendo de errado, mas não tive sort

Alguém tem alguma idéia de por que isso está acontecendo?

questionAnswers(2)

yourAnswerToTheQuestion