微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用/启用EventHubClient的EventHubsEventSource跟踪

我试图在 azure-event-hubs-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);
    }
}

编辑: 以下内容基于对问题的错误理解,适用于当前的Event Hubs客户端库Azure.Messaging.EventHubs。这些语句对于旧的客户端库Microsoft.Azure.EventHubs并不适用。我暂时不做任何改动,因为某些读者可能会对它感兴趣。

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

最简单的方法是利用AzureEventSourceListener库中的Azure.Coresample演示了一些使用它的方法。另外,源代码中的OnEventSourceCreated方法说明了如何将特征集成到自己的侦听器中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。