在我的组件中,我通过派生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获取我的活动?
答案 0 :(得分:2)
Azure Diagnostics不适用于ETW事件!
Azure诊断程序适用于:
所有这些都与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诊断日志很有用。