将事件写入特定EventViewer

时间:2018-04-19 12:51:37

标签: c# event-viewer

我在Windows事件查看器上阅读了多篇文章和SO问题。但是,我仍然无法实现我的目标。我有一个Windows服务,我打电话给#34; Social"。我想将此Windows服务中的信息写入Windows事件查看器。这时,我正在尝试以下方法:

var message = "Test Log";
using (var sw = File.AppendText(AppDomain.CurrentDomain.BaseDirectory + "test.txt"))
{
  sw.WriteLine(message);
}

var eventLog = new EventLog();
eventLog.Source = "Service";
eventLog.Log = "Social";

eventLog.BeginInit();
if (EventLog.SourceExists(eventLog.Source) == false)
{
  EventLog.CreateEventSource(eventLog.Source, "Social");
}
eventLog.EndInit();

eventLog.WriteEntry(message, EventLogEntryType.Information);

我添加了" test.txt"文件只是为了确保我的代码到达。该代码运行正常。但是,我从未在事件查看器中看到我的消息。事实上,我从未见过创建新的事件源。我本来希望转到Windows事件查看器,看到位于"事件查看器的新项目 - >应用程序和服务日志 - >社交媒体分析器"。但是,我没有看到任何。

值得注意的是,"社交"日志存在于事件查看器中。但是,没有任何东西写入它。日志被写入"应用程序"记录而不是。它几乎像Windows服务忽略了我想写入特定日志的事实。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

eventLog.Log = "Application";
...
EventLog.CreateEventSource(eventLog.Source, "Application");

您正在将您的事件写入“Windows日志”下的应用程序日志。事件应将Source(列)指定为“Social Media Analyzer”。

如果要写入自定义日志,则需要

之类的内容
EventLog.CreateEventSource("MyEventSource", "Social Media Analyzer");