VB.Net
ETW

VB.netでETWを使ってイベントログ出力するサンプルコード

はじめに

ETWでイベントログ出力したいけどサンプルコードがC#ばかりでVB.netでどう書いたらいいかわからないという人向け。

この記事の内容は以下の環境でテストしています。
Windows 10 Pro
Visual Studio Community 2017
.Net Framework 4.7

サンプルコード

こちらの記事に記述されているC#のサンプルコードを使用させていただきました。
急にEventSourceクラスを使ってEvent Tracing for Windows経由でイベントログにログを書くことになった人向けのチュートリアル
面倒くさがらずにコード以外の手順等を尊守すればイベントログに無事出力されます。
がんばって!

Module1.vb
Imports System.Diagnostics.Tracing
Module Module1

    Sub Main()
        SampleETW.MyEventSource.Log.Critical("大変なことになりました。")
        Console.WriteLine("イベントログを確認して下さい(Enterキーで終了)")
        Console.ReadLine()
    End Sub

End Module

Namespace SampleETW
    <EventSource(Name:="AwesomeService")>
    Friend NotInheritable Class MyEventSource
        Inherits EventSource

        Public Shared Log As MyEventSource = New MyEventSource()

        <[Event](1, Level:=EventLevel.Critical, Message:="{0}", Channel:=EventChannel.Admin)>
        Public Sub Critical(message As String)
            MyBase.WriteEvent(1, If(message, ""))
        End Sub
    End Class
End Namespace