1

在我的组件中,我通过派生EventSource类创建了几个 ETW 事件源:

[EventSource]
public class MessagingTrace : EventSource
{
    [Event(1)]
    public void MessageReceived(string address)
    {
        this.WriteEvent(1, address);
    }
}

我尝试关注有关在 Windows Azure 中启用诊断的文章,但我找不到有关如何配置 Azure 诊断以从我自己的来源捕获事件的任何指导。

虽然我知道该选项存在,但我宁愿不通过旧的 .NET 跟踪路由我的事件,因为它只能在部署时配置。

有没有办法让 Azure 诊断来接收我的事件?

4

3 回答 3

2

Azure 诊断不适用于 ETW 事件!

Azure 诊断适用于:

  • Windows 事件日志事件
  • .NET 跟踪
  • IIS 日志文件
  • Windows 性能计数器
  • 自定义日志文件

所有这些都与 ETW( Windows 事件跟踪)有很大不同!ETW 内置于 Windows 本身,而不是 .NET Framework。并且 Windows Azure 诊断模块没有内置支持从 ETW 读取事件。但是,您可以制作 ETW 跟踪日志文件,并使 Azure 诊断将这些日志作为常规“日志”文件传输到存储中。

您可以在此处阅读有关如何将 ETW 跟踪日志文件与 Windows Azure 诊断一起使用的更多信息。

您可能还想查看Enterprise Library 中的语义日志记录应用程序块 6。此块使用 EventSource 并具有用于 Windows Azure 表存储的接收器。

于 2013-10-30T13:47:11.650 回答
1

Azure 现在支持 ETW 日志记录。要启用它,在服务器资源管理器中,右键单击角色并编辑诊断配置,应该有一个 ETW 日志选项卡,您可以在其中启用它们。

有一个Channel9 Video 详细解释了它。

于 2016-04-15T15:02:21.880 回答
0

您可能还会发现此文档对如何以编程方式在云服务上启用 ETW 诊断日志很有用。

在此处输入图像描述

于 2019-02-11T22:01:27.420 回答