2013-12-13 37 views
0

我正试图在Windows EventViewer中的自己的应用程序日志中写入条目。无法在事件查看器中看到我的条目

这里是我的代码

  string source = "MatrixTaskLaunch"; 
      string log = "MatrixTaskLauncher"; 
      string logevent = errorList.ToString(); 
      if (!EventLog.SourceExists(source)) 
       EventLog.CreateEventSource(source, log); 

      EventLog.WriteEntry(source, logevent); 
      EventLog.WriteEntry(source, logevent, 
       EventLogEntryType.Warning, 234); 

我第一次执行该代码它执行的行

EventLog.CreateEventSource(source, log); 

,继续步,此后它会跳过这一行,并执行剩余的线完成, 每一次。看起来不错!该指示表明它已经创建了我的日志并且正在将事件放入其中。

但是我在Win7事件查看器中看不到我的日志。这些条目既不在应用程序下,也不在自己的日志中(即“MatrixTaskLauncher”)。

我错过了什么吗?我曾尝试在事件查看器中刷新日志,然后有人提出这个建议!

+0

好的,我明白了 - 我需要用期望的日志名实例化我自己的EventLog对象,并用它来代替静态的EventLog方法来写入条目。 –

+0

不,我没有 - 它出现在管理事件下的自定义视图中。请sonmeone指出我如何创建自己的应用程序日志,该日志在“应用程序和服务日志”下显示为单独的日志? –

回答

1

您的代码在Windows 7上适用于我。可能会令人困惑的是,Windows事件查看器在运行时不会加载新创建的事件日志(无论您多么频繁地点击F5或刷新)。重新启动Windows事件查看器后,加载先前创建的应用程序事件日志,并且它们出现在插件中。

enter image description here

事件日志时由一个文件中(至少在Windows 7)支持的窗口和那些可以被发现在:

C:\ Windows \ System32下\ winevt \日志

调用EventLog.CreateEventSource备份文件后,会出现其他事件日志文件中的文件夹中:

enter image description here