C#非同步設計 搭配 NLog TraceIdentifier

寫得好的非同步,可以增加伺服器的吞吐量。

Log是個很重要且很方便的工具,但因為非同步寫法(Task async awai),不容易從Log找到同一個Request的Flow

所以參考了NLog官網上的 Layout renderers找到了一個${aspnet-TraceIdentifier}語法可以參考使用

此語法使用的HttpContext中的TraceIdentifier

因此在Nlog Layout加入TraceId 以及ThreadId 就可以觀察出,是否使用到非同步寫法

${aspnet-TraceIdentifier:ignoreActivityId=true}


是ASP.NET Core 3(包含)以後的寫法,詳請