我可以轻松地写入事件日志并阅读其内容。但是,我希望能够只查询事件查看器的一个子集,主要是我在特定时间范围内创建的源。
从我所看到的情况来看,可以按机器名称和来源进行过滤,(我还没有让它因为某种原因而工作,它总是返回应用程序日志中的所有内容),而不是按日期和时间。
我能够使用LINQ轻松完成。但是,它仍然会查看整个应用程序日志,因此需要一段时间。随着时间的推移,我想事件查看器中的事件数量会变得越来越大,所以我看不到变得越来越好。
有没有办法通过比通常的参数查询事件查看器来加快这个过程,还是我必须“忍受它”?
由于
答案 0 :(得分: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
只觉得我觉得奇怪的是它是日期时间格式。此外,有时感觉整个事情需要很长时间才能没有明确的理由。
无论如何,我认为这是一个很好的解决方案。