猿问

NLog并发请求到不同的文件

正如标题所暗示的,我试图将单独的请求记录到我的 .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} | &quot;${message}&quot;" 

    createDirs="true" />

    </target>

</targets>

<rules>

    <logger name="test" minlevel="Info" writeTo="concurrents"></logger>

</rules>

大家可能已经知道,


当并发请求进来时,我试图通过创建一个新的 Guid 并将其分配给{var}并以 var 的名称创建文件来记录每个请求。


日志不知何故混淆了,请求的一半在一个文件中,另一半在另一个文件中。


老实说,我想我遗漏了一些我应该知道但不确定在哪里的基本知识。


如果有人能指出正确的方向并帮助我了解如何在不同的文件中记录当前请求,那就太好了。


倚天杖
浏览 368回答 1
1回答
随时随地看视频慕课网APP
我要回答