我正在尝试通过在我的云服务中启用Azure诊断来记录ETW事件。部署后,如果我在“诊断配置”对话框中签入,则ETW日志似乎已启用。此外,所有WAD *表都已创建,但是根本不会创建在diagnostics.wadcgfx文件中指定的自定义ETW表。这是日志代码 -
public sealed class VstsEventSourceWriter : EventSource
{
public void LogException(int eventId, string ErrorMessage, string ExceptionType, string ExceptionMessage, string Stacktrace)
{
if (IsEnabled())
{
WriteEvent(eventId, ErrorMessage, ExceptionType, ExceptionMessage, Stacktrace);
}
}
}
diagnostic.wadcfgx中的代码 -
<EtwProviders>
<EtwEventSourceProviderConfiguration provider="VstsEventSourceWriter" scheduledTransferPeriod="PT5M">
<Event id="1" eventDestination="Table1" />
<Event id="2" eventDestination="Table2" />
<Event id="3" eventDestination="Table3" />
<DefaultEvents eventDestination="DefaultTable" />
</EtwEventSourceProviderConfiguration>
</EtwProviders>
如果我在服务中调试,isEnabled()
始终为False。所以永远不会调用WriteEvent
。我在.NET Framework 4.5中使用Azure 2.9 SDK。我应该检查此日志记录是否有效?我已从VS中的“属性”启用了“工作者角色诊断”,并指定了存储帐户详细信息以存储诊断结果。