如何在Azure角色中启用自定义ETW事件?

时间:2013-10-30 10:59:43

标签: c# azure etw

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

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

我已尝试关注Enabling Diagnostics in Windows Azure上的文章,但我找不到有关如何配置Azure诊断程序以从我自己的来源捕获事件的任何指导。

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

有没有办法让Azure Diagnostics获取我的活动?

3 个答案:

答案 0 :(得分:2)

Azure Diagnostics不适用于ETW事件!

Azure诊断程序适用于:

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

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

您可以阅读有关如何在Windows Azure诊断here中使用ETW跟踪日志文件的更多信息。

您可能还想查看Semantic Logging Application Block from the Enterprise Library 6。此块使用EventSource并具有用于Windows Azure表存储的接收器。

答案 1 :(得分:1)

Azure now supports ETW logging. To enable it, in Server Explorer, right-click on the role and edit the diagnostics configuration, there should be a tab for ETW logs where you can enable them.

There's a Channel9 Video that explains it in detail.

答案 2 :(得分:0)

您可能还会发现 this documentation 对于如何以编程方式在Cloud Service上启用ETW诊断日志很有用。

enter image description here