4

eventvwrのフォルダに表示されるイベントログをプログラムで取得したい。これはWindows8アプリ用です:Microsoft-Windows-AppHost/Admin。私は管理者として実行しています。

これは機能していません:

System.Diagnostics.EventLog.SourceExists("Microsoft-Windows-AppHost/Admin");

これも機能していません:

EventLogQuery queryMicrosoftWindowsAppHost = new EventLogQuery("Microsoft-Windows-AppHost/Admin", PathType.LogName);
_eventsMicrosoftWindowsAppHost = new List<EventRecordWrittenEventArgs>();
_eventLogWatcherMicrosoftWindowsAppHost = new EventLogWatcher(queryMicrosoftWindowsAppHost);
_eventLogWatcherMicrosoftWindowsAppHost.EventRecordWritten += (object sender, EventRecordWrittenEventArgs e) =>
{
    _eventsMicrosoftWindowsAppHost.Add(e);
};
_eventLogWatcherMicrosoftWindowsAppHost.Enabled = true;
4

1 に答える 1

2

次のコードを使用して、イベントログを読み取ることができます。

EventLogReader reader = new EventLogReader("Microsoft-Windows-AppHost/Admin");
var evt = reader.ReadEvent();
while (evt!= null)
{
    // Write the message to the console
    Console.WriteLine(evt.FormatDescription());
    evt = reader.ReadEvent();
}

ハンドラーをアタッチする場合、コードは近くにありますが、クエリオブジェクトを使用する代わりに、文字列をウォッチャーに渡すことができます。

var watcher = new EventLogWatcher("Microsoft-Windows-AppHost/Admin");
watcher.EventRecordWritten += (object s, EventRecordWrittenEventArgs e1) =>
    {
        Console.WriteLine(e1.EventRecord.FormatDescription());
    };
watcher.Enabled = true;
于 2013-01-25T17:34:38.343 に答える