一旦请求处理开始,我想为每个传入的 ASP.NET 请求向 System.Diagnostics.Activity 对象添加一个标记。有没有办法可以访问请求管道的 ActivitySource 并为其添加侦听器?
目前我正在考虑使用管道中间件,但必须有一种更轻量级的方式。尤其是其他开发人员无法在此之前添加任何其他中间件处理程序的情况。有任何想法吗?
一旦请求处理开始,我想为每个传入的 ASP.NET 请求向 System.Diagnostics.Activity 对象添加一个标记。有没有办法可以访问请求管道的 ActivitySource 并为其添加侦听器?
目前我正在考虑使用管道中间件,但必须有一种更轻量级的方式。尤其是其他开发人员无法在此之前添加任何其他中间件处理程序的情况。有任何想法吗?
看起来您可以在启动时通过 DI 添加它。关键是ActivitySource
. 我在任何文档中都找不到它。我不得不浏览aspnetcore 代码,它看起来像为DiagnosticListener
.
任何状况之下 ...
将以下内容添加到Configure(...)
:
var requestActivityListener= new ActivityListener();
requestActivityListener.ShouldListenTo = activitySource => activitySource.Name == "";
requestActivityListener.ActivityStarted = activity => LetsShapeThisActivityToOurLiking(activity);
ActivitySource.AddActivityListener(requestActivityListener);
应该是这样的。