【问题标题】:How do I read from an arbitrary evxt file using System.Diagnostics.EventLog?如何使用 System.Diagnostics.EventLog 从任意 evxt 文件中读取?
【发布时间】:2013-11-06 03:07:10
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net logging event-log


    【解决方案1】:

    假设日志文件是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 是否显示在 应用程序和服务日志下。

    您现在可以使用EventLog 打开LogA

    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")
    

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 2011-02-03
      • 2011-05-05
      • 2020-11-08
      • 2020-01-04
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多