Как видно из заголовка, я пытаюсь регистрировать отдельные запросы к моим контроллерам .NET Web API в отдельных файлах.
С введением {var}
вот что я пытаюсь сделать внутри моего кода на C #.
private static Logger logger = LogManager.GetLogger("test");
[HttpPost, Route("xyz")]
public IHttpActionResult Post(Obj value)
{
var guid = Guid.NewGuid();
LogManager.Configuration.Variables["test"] = guid.ToString();
logger.Info(value);
//do my execution here.
}
Мой Nlog.Config выглядит следующим образом:
<variable name="test" value=""/>
<targets async="true">
<target xsi:type="File"
name="concurrents"
fileName="${basedir}/nlogs/${logger}/${var:test}.log"
layout="${uppercase:${level}} | ${callsite} | ${date:format=HH\:mm\:ss.fff} | "${message}""
createDirs="true" />
</target>
</targets>
<rules>
<logger name="test" minlevel="Info" writeTo="concurrents"></logger>
</rules>
Как вы все, возможно, уже знаете,
Когда приходят параллельные запросы, я пытаюсь войтикаждый запрос, создавая новый Guid и добавляя его к {var}
и создавая файл под именем var.
Журналы каким-то образом перепутаны, и одна половина запроса находится в одном файле, а другая половина - в другом.
Если честно, я думаю, что мне не хватает какой-то фундаментальной вещи, о которой я должен знать, но не уверен, где.
Было бы замечательно, если бы кто-то мог указать верное направление и помочь мне понять, как я могу записать текущий запрос в разные файлы.
Приветствия