【问题标题】:Read event viewer entries阅读事件查看器条目
【发布时间】:2016-03-11 04:25:18
【问题描述】:

我想在 c# 程序中从某个自定义事件日志中读取事件条目, 并通过它们的描述过滤它们。 有没有办法做到这一点? 还是一种将条目作为集合获取的方法,以便我可以按条件从中进行选择?

【问题讨论】:

  • 检查,有'Entries'属性,不知道如何按条件读取。
  • 您是在谈论您会在 Windows 的 eventvwr.msc 中看到的事件,还是您在谈论某种应用程序驱动的事件?
  • 我会在事件查看器中看到的事件是
  • 嗨,Shaked,刚刚看到,您在附近,甚至就这个问题提出了一个新问题。我的回答对你有帮助吗?

标签: c# conditional-statements event-log


【解决方案1】:

试试这样的:

       string queryString = string.Format("*[System[TimeCreated[@SystemTime>='{0}' and @SystemTime<='{1}']]]",
            DateTime.Now.Date.AddDays(-10).ToString("s"),
            DateTime.Now.Date.ToString("s"));
        var q = new EventLogQuery("Microsoft-Windows-User Profile Service/Operational", PathType.LogName, queryString);
        var r = new EventLogReader(q);

        var list = new List<EventRecord>(); 

        EventRecord er = r.ReadEvent();
        while (er != null) {
            list.Add(er);
            er = r.ReadEvent();
        }

过滤器是XPathXQuery。如果您想了解事件的内部结构,我发现最好通读 eventvwr 中的过滤器定义。查看XML-tab...

【讨论】:

  • 哇,感谢您对这种读取事件日志的方法的提醒!多亏了它,我能够将阅读日志的时间从 35 秒减少到 4 秒!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多