1

[免责声明]我是 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);
}

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

我究竟做错了什么?

4

1 回答 1

1

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

快速检查此问题的方法:

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

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

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

于 2013-06-19T13:13:13.640 回答