Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 查询自定义事件日志以搜索事件ID_C#_.net_Event Log - Fatal编程技术网

C# 查询自定义事件日志以搜索事件ID

C# 查询自定义事件日志以搜索事件ID,c#,.net,event-log,C#,.net,Event Log,[免责声明]我是C#的新手,我不是程序员![/免责声明] 我遵循位于此处()的示例在自定义事件日志中搜索给定的eventid 该示例中的代码是: string eventID = "5312"; string LogSource = "Microsoft-Windows-GroupPolicy/Operational"; string sQuery = "*[System/EventID=" + eventID + "]"; var elQuery = new EventLogQuery(

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

我遵循位于此处()的示例在自定义事件日志中搜索给定的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);
}
string eventID=“5312”;
字符串LogSource=“Microsoft Windows GroupPolicy/Operational”;
字符串sQuery=“*[System/EventID=“+EventID+”]”;
var elQuery=neweventlogquery(LogSource,PathType.LogName,sQuery);
var elReader=new System.Diagnostics.Eventing.Reader.EventLogReader(elQuery);
List eventList=新列表();
for(EventRecord eventInstance=elReader.ReadEvent();
null!=eventInstance;eventInstance=elReader.ReadEvent()
{
添加(eventInstance);
}
在我的应用程序中,我创建了一个名为“SMCLogs”的事件日志,日志源是“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);
}
string eventID=“330”;
字符串LogSource=“SAM2\u SMCLogs”;
字符串sQuery=“*[SMCLogs/EventID=“+EventID+”]”;
var elQuery=neweventlogquery(LogSource,PathType.LogName,sQuery);
var elReader=new System.Diagnostics.Eventing.Reader.EventLogReader(elQuery);
List eventList=新列表();
for(EventRecord eventInstance=elReader.ReadEvent();
null!=eventInstance;eventInstance=elReader.ReadEvent()
{
添加(eventInstance);
}
但我得到错误:“找不到指定的通道。请检查通道配置”


我做错了什么?

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

检查此问题的快速方法:

  • 赢+R
  • 类型eventvwr.msc
  • 在“事件查看器”树中的“自定义视图”文件夹上单击鼠标右键
  • 创建自定义视图
  • 列表项
  • 选择“按日志”单选按钮
  • 在下拉列表中,尝试在“应用程序和服务日志”下搜索您的日志
如果您在那里看到您的日志--好的,您的日志存在


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

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

检查此问题的快速方法:

  • 赢+R
  • 类型eventvwr.msc
  • 在“事件查看器”树中的“自定义视图”文件夹上单击鼠标右键
  • 创建自定义视图
  • 列表项
  • 选择“按日志”单选按钮
  • 在下拉列表中,尝试在“应用程序和服务日志”下搜索您的日志
如果您在那里看到您的日志--好的,您的日志存在

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