我在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服务忽略了我想写入特定日志的事实。
我做错了什么?
答案 0 :(得分:0)
eventLog.Log = "Application";
...
EventLog.CreateEventSource(eventLog.Source, "Application");
您正在将您的事件写入“Windows日志”下的应用程序日志。事件应将Source(列)指定为“Social Media Analyzer”。
如果要写入自定义日志,则需要
之类的内容EventLog.CreateEventSource("MyEventSource", "Social Media Analyzer");