查询自定义事件日志,搜索“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);
}
但是我得到错误:"指定的通道无法找到。
我做错了什么?
首先,您需要确保您的事件日志和事件源存在。
快速检查方法:
- Win + R
- 类型eventvwr.msc
- 右键单击"事件查看器"树中的"自定义视图"文件夹。 创建自定义视图列表项
- 选择"按日志"单选按钮 在下拉列表中尝试在"应用程序和服务日志"下搜索您的日志
如果你在那里看到你的日志——好的,你的日志存在。
现在检查你的源是否存在于你的日志下,按照步骤操作,但是现在选择"By source"而不是"By log "单选按钮,看看你是否能在那里找到你的事件源。