C# 从路径中读取事件日志文件

C# 从路径中读取事件日志文件,c#,windows,logging,event-log,C#,Windows,Logging,Event Log,我的问题和这个很相似 除了我在记录任何东西。我需要从多个未连接的机器创建日志条目的数据库。我获取.evtx文件,然后尝试处理它们。现在,我正在从导出的xml文件执行此操作。但是我想跳过到xml转换部分。我读过这篇文章,但没有找到我要找的东西。有没有一种方法可以在不转换为xml的情况下实现我想要的功能?使用: 我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。这肯定解决了问题。谢谢既然实现了IDisposable,那么它不应该在使用中包装吗?@PonuryCiastkarz我没有注意

我的问题和这个很相似 除了我在记录任何东西。我需要从多个未连接的机器创建日志条目的数据库。我获取.evtx文件,然后尝试处理它们。现在,我正在从导出的xml文件执行此操作。但是我想跳过到xml转换部分。我读过这篇文章,但没有找到我要找的东西。有没有一种方法可以在不转换为xml的情况下实现我想要的功能?

使用:


我已经编辑了你的标题。请看,“,其中的共识是“不,他们不应该”。这肯定解决了问题。谢谢既然实现了IDisposable,那么它不应该在使用中包装吗?@PonuryCiastkarz我没有注意到这一点。我只是假设它只是一个简单的数据容器。更新了答案。我发现“EventLogReader”由于其保护级别而无法访问,EventLogReader.ReadEvent()在.Net标准框架和.Net核心框架上都有相同的错误。我想自从这个答案被写出来后,这些已经被弃用了。@computercarguy这个类没有包含在.NET标准中。您必须使用完整的.NET framework或。该错误似乎来自VisualStudio建议的不相关的包(TaskScheduler)。
using (var reader = new EventLogReader(@"path\to\log.evtx", PathType.FilePath))
{
    EventRecord record;
    while((record = reader.ReadEvent()) != null)
    {
        using (record)
        {
            Console.WriteLine("{0} {1}: {2}", record.TimeCreated, record.LevelDisplayName, record.FormatDescription());
        }
    }        
}