我试图通过在我的 Cloud 服务中启用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);
}
}
}
diagnostics.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中的“属性”启用了“工作者角色诊断”,并指定了存储帐户详细信息以存储诊断结果 .