如何使用System.Diagnostics.EventLog从任意evxt文件中读取?

时间:2013-11-06 03:07:10

标签: c# .net logging event-log

如何使用EventLog从任意evtx文件中读取?

EventLogQuery能够打开evtx个文件,但在.NET 2.0中不可用。

1 个答案:

答案 0 :(得分:0)

我们假设日志文件是LogA.evtx

LogA.evtx复制到C:\Windows\System32\winevt\Logs

将新的注册表项添加到:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog

名为LogA。例如。在PowerShell中:

Set-Location HKLM:

New-Item .\SYSTEM\CurrentControlSet\services\eventlog -Name LogA

打开事件查看器以验证 LogA 是否显示在应用程序和服务日志下。

您现在可以使用LogA打开EventLog

using System;
using System.Diagnostics;

namespace EventLogTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var log = new EventLog("LogA");

            Console.WriteLine(log.Entries.Count);
        }
    }
}

您可以通过PowerShell删除LogA

[System.Diagnostics.EventLog]::Delete("LogA")