你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

EventDataDiagnosticExtensions.ExtractActivity(EventData, String) 方法

定义

Activity基于存储在事件中从 EventHub接收的事件中的EventData跟踪上下文创建 可选活动名称使用跟踪上下文新建Activity

public static System.Diagnostics.Activity ExtractActivity (this Microsoft.Azure.EventHubs.EventData eventData, string activityName = default);
static member ExtractActivity : Microsoft.Azure.EventHubs.EventData * string -> System.Diagnostics.Activity
<Extension()>
Public Function ExtractActivity (eventData As EventData, Optional activityName As String = Nothing) As Activity

参数

eventData
EventData
activityName
String

返回

示例

async Task ProcessAsync(EventData eventData)
{
   var activity = eventData.ExtractActivity();
   activity.Start();
   Logger.LogInformation($"Event received, Id = {Activity.Current.Id}")
   try 
   {
      // process event
   }
   catch (Exception ex)
   {
        Logger.LogError($"Exception {ex}, Id = {Activity.Current.Id}")
   }
   finally 
   {
        activity.Stop();
        // Activity is stopped, we no longer have it in Activity.Current
        Logger.LogInformation($"Event processed, Id = {activity.Id}, Duration = {activity.Duration}")
   }
}

请注意,每个日志都使用 Current进行标记。可以在同步或异步 () 的任何嵌套方法调用中使用的 ID 是 Current 一个通过异步方法调用流动的环境上下文。

注解

跟踪上下文用于关联生成者和使用者之间的遥测数据,由 中的 Properties“诊断 Id”和“相关上下文”属性表示。

如果通过跟踪系统) 启用诊断,则向 ServiceBus (发送消息时,.NET SDK 会自动注入上下文。

“诊断 Id”唯一标识将事件排入队列的操作

“Correlation-Context”是表示操作的可选上下文的字符串键值对的逗号分隔列表。

如果 事件中没有跟踪上下文,则此方法返回 Activity 没有父级。

Activity返回需要先启动,然后才能使用它 (请参阅以下示例)

适用于