你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
EventDataDiagnosticExtensions.ExtractActivity(EventData, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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返回需要先启动,然后才能使用它 (请参阅以下示例)