如何为EventHubClient使用/启用EventHubsEventSource跟踪



我正试图在azure事件中心dotnet/src/Microsoft.azure.EventHubs/EventHubClient.cs中启用EventHubsEventSource跟踪,例如在文件中跟踪它们的事件。有人能告诉我如何举办此类活动吗?我曾尝试使用自定义的EventTraceListener,但类EventHubsEventSource被标记为内部,因此在我的侦听器中不可见。谢谢你的帮助。

事件源实现是内部的,但侦听器可以通过名称选择源。在侦听器的OnEventSourceCreated中,您应该能够根据事件源的名称进行筛选。

这看起来像:

protected override void OnEventSourceCreated(EventSource eventSource)
{
base.OnEventSourceCreated(eventSource);
if (eventSource.Name == "Microsoft-Azure-EventHubs")
{
EnableEvents(eventSource, EventLevel.Verbose);
}
}

编辑:以下内容基于对该问题的误读,适用于当前一代事件中心客户端库Azure.Messaging.EventHubs。这些语句不适用于遗留客户端库Microsoft.Azure.EventHubs,它是问题的主题。我暂时不谈这个问题,因为它可能会引起一些读者的兴趣

事件源实现是内部的,但侦听器可以通过选择具有AzureEventSource特性的源来使用。

最简单的方法是使用Azure.Core库中的AzureEventSourceListener。这个示例演示了一些使用它的方法。或者,它的源代码中的OnEventSourceCreated方法说明了如何将特性集成到自己的监听器中。

最新更新