查询自定义事件日志,搜索“EventID”

本文关键字:EventID 搜索 自定义 事件 日志 查询 | 更新日期: 2023-09-27 18:17:29

[免责声明]我是c#新手,我不是程序员![/免责声明]

我正在遵循位于这里的示例(c#:如何查询具有给定事件id的事件日志详细信息?)在自定义事件日志中搜索给定的事件id。

这个例子中的代码是:

string eventID = "5312";
string LogSource = "Microsoft-Windows-GroupPolicy/Operational";  
string sQuery = "*[System/EventID=" + eventID + "]";
var elQuery = new EventLogQuery(LogSource, PathType.LogName, sQuery);
var elReader = new System.Diagnostics.Eventing.Reader.EventLogReader(elQuery);
List<EventRecord> eventList = new List<EventRecord>();
for (EventRecord eventInstance = elReader.ReadEvent();
    null != eventInstance; eventInstance = elReader.ReadEvent())
{
    eventList.Add(eventInstance);
}

在我的应用程序中,我创建了一个名为"SMCLogs"的事件日志,LogSource是"SAM2_SMCLogs",所以我更改为上面的代码如下:

string eventID = "330";
string LogSource = "SAM2_SMCLogs";  
string sQuery = "*[SMCLogs/EventID=" + eventID + "]";
var elQuery = new EventLogQuery(LogSource, PathType.LogName, sQuery);
var elReader = new System.Diagnostics.Eventing.Reader.EventLogReader(elQuery);
List<EventRecord> eventList = new List<EventRecord>();
for (EventRecord eventInstance = elReader.ReadEvent();
    null != eventInstance; eventInstance = elReader.ReadEvent())
{
    eventList.Add(eventInstance);
}

但是我得到错误:"指定的通道无法找到。

我做错了什么?

查询自定义事件日志,搜索“EventID”

首先,您需要确保您的事件日志和事件源存在。

快速检查方法:

  • Win + R
  • 类型eventvwr.msc
  • 右键单击"事件查看器"树中的"自定义视图"文件夹。
  • 创建自定义视图列表项
  • 选择"按日志"单选按钮
  • 在下拉列表中尝试在"应用程序和服务日志"下搜索您的日志

如果你在那里看到你的日志——好的,你的日志存在。

现在检查你的源是否存在于你的日志下,按照步骤操作,但是现在选择"By source"而不是"By log "单选按钮,看看你是否能在那里找到你的事件源。