查询搜索EventID的自定义事件日志

时间:2013-06-09 13:38:48

标签: c# .net event-log

[免责声明]我对C#很陌生,而且我不是程序员![/免责声明]

我按照此处的示例(C#: How to Query for an event log details with a given event id?)来搜索自定义事件日志中的给定eventid。

该示例中的代码是:

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);
}

但我收到错误:“找不到指定的频道。检查频道配置

我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

快速检查此方法:

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

如果你看到你的日志 - 好的,你的日志就存在了。

现在检查您的日志下是否存在您的源,执行这些步骤,但现在选择“按源”而不是“按日志”单选按钮,看看您是否可以在那里找到您的事件来源。