我已经编写了一个应用程序,它是一个组件,其中的事件在Windows应用程序日志中引发,并具有特定的Source和EventID以解析来自它们的数据。但是,由于没有明显的原因,它似乎错过了其中一些事件。Windows应用程序日志事件正在'错过'用我的事件日志
我已经包含调试消息,试图查看问题出在哪里 - 这采取发送到文本字段的评论的形式。
将条目写入应用程序日志时,将带有时间戳的消息添加到调试文本字段,并调用parseApplicationLogEntry()
。
private void eventLogApplication_EntryWritten(object sender,
System.Diagnostics.EntryWrittenEventArgs e)
{
txtDebug.Text = txtDebug.Text + "\n " + DateTime.Now.ToLongTimeString() +
+ ": Application Log has been written.";
parseApplicationLogEntry();
}
应用程序日志条目解析,来源和事件ID在看着以确定它们是否是我们所期待的。带时间标记的消息添加到显示找到的源和事件ID的调试文本中。
private void parseApplicationLogEntry()
{
System.Diagnostics.EventLog log = new System.Diagnostics.EventLog("Application");
int entry = log.Entries.Count - 1;
string logMessage = log.Entries[entry].Message;
string logSource = log.Entries[entry].Source;
string logEventID = log.Entries[entry].InstanceId.ToString();
log.Close();
txtDebug.Text = txtDebug.Text + "\n " + DateTime.Now.ToLongTimeString() +
": Application Log Source is " + logSource;
txtDebug.Text = txtDebug.Text + "\n " + DateTime.Now.ToLongTimeString() +
": Application Log EventID is " + logEventID;
if (logSource == "ExpectedSource" & logEventID == "ExpectedEventID")
{
// Do stuff
}
}
的行为是按预期多的时间,但有时很奇怪的行为。
例如,将13条日志写入应用程序日志。 3与寻找的来源,10与另一个来源。调试文本显示13个条目被看到,所有与陌生的来源...
我不知道该从哪里去。