1

我可以轻松地写入事件日志并读取其内容。但是,我希望能够仅查询事件查看器的一个子集,主要是我在特定时间范围内创建的源。

据我所知,可以按机器名称和来源进行过滤(由于某种原因,我还没有让它工作,它总是从应用程序日志中返回所有内容),但不能按日期和时间。

我能够使用 LINQ 轻松做到这一点。但是,它仍然会查看整个应用程序日志,因此需要一段时间。随着时间的推移,我猜事件查看器中的事件数量会越来越大,所以我看不到会变得更好。

有没有办法通过比通常参数更多的参数来查询事件查看器以加快进程,还是我必须“忍受它”?

谢谢

4

1 回答 1

0

我用 WMI 做了一些测试,当我得到一小部分结果时,结果证明这是一个足够好的解决方案。

Dim oMag As New Management.ManagementObjectSearcher("SELECT User, Type,TimeGenerated,Message FROM Win32_NTLogEvent WHERE LogFile = 'Application' AND SourceName = 'Journalisation' AND TimeGenerated >= '20121031180000.000000-000' AND TimeGenerated <= '20121031181500.000000-000'")
Dim oMagColl As Management.ManagementObjectCollection = oMag.Get

For Each oMagObj As Management.ManagementObject In oMagColl
    Msgbox(oMagObj("User") & vbTab & oMagObj("Type") & vbTab & oMagObj("TimeGenerated") & vbTab & oMagObj("Message"))    
Next

只是觉得我觉得奇怪的是日期时间格式。此外,有时感觉整个事情都需要很长时间,没有明显的原因。

无论如何,我认为这是一个很好的解决方案。

于 2012-10-31T18:41:02.510 回答