2

我正在尝试通过在我的云服务中启用 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 框架 4.5 的 Azure 2.9 SDK。我应该检查什么才能使此日志记录正常工作?我已经从 VS 的属性中启用了 Worker 角色的诊断,并指定了存储帐户详细信息来存储诊断结果。

4

0 回答 0