如何解决如何使用/启用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.Core
。 sample演示了一些使用它的方法。另外,源代码中的OnEventSourceCreated
方法说明了如何将特征集成到自己的侦听器中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。