クラウド サービスで Azure Diagnostics を有効にして、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 のプロパティから Worker ロールの診断を有効にし、ストレージ アカウントの詳細を指定して診断結果を保存しました。