如何唯一标识ASP.NET Core 2应用程序中的每个请求(用于记录)

时间:2018-05-09 22:15:09

标签: asp.net-core asp.net-core-2.0

在ASP.NET Core 2应用程序中,我需要为每个请求提供唯一标识符(例如Guid),以便我可以在每个日志中包含该ID,并了解每个请求的日志顺序。

我自己写这个并不难,但我想知道是否有可以使用的内置功能或ASP.NET Core 2实现此功能。

2 个答案:

答案 0 :(得分:8)

您可以使用System.Diagnostics.Activity班级(source)。来自Activity User Guide

  

Activity.Id用作HTTP Correlation Protocol

方面的分层Request-Id

例如Microsoft/ApplicationInsights-aspnetcore用于应用监控。

答案 1 :(得分:5)

ASP.NET Core还具有HttpContext.TraceIdentifier,它唯一地标识当前请求。

它是由Kestrel为每个传入请求生成的,因此不适合将来自另一个服务的调用关联起来,但是适合将单个请求的日志关联在一起,或者关联可能显示给用户的错误消息。具有相应日志的用户。