我们目前正在研究替换我们系统上的日志记录。在许多地方,我们已经在使用常规的 EventLog API,如果事件源不存在,它会自动创建事件源。
我想知道将我们的代码转换为正确使用 EventSources 而不是仅使用常规 EventLog API(非常易于使用)有多少好处。这值得做吗?
我们希望同时实现日志记录(我们想了解单个成功/错误/信息/警告状态事件)和跟踪。
Eventlog 是从 Vista 开始的内部 ETW(仅供参考)。
对于跟踪事件日志没有帮助。您将使用太多条目浮动事件日志。使用 Eventsource,在您收听它们(xperf、WPR、PerfView)之前不会发送数据,因此这不会影响性能。
如果您仍然需要 Eventlog 条目,您还可以使用 EventSource 写入 Eventlog。
微软几周前发布了微软事件源库的 NuGet 包。
微软在这里解释了如何使用它:
宣布 EventSource NuGet 包 - 写入 Windows 事件日志
使用 Eventsource 时,您还可以添加带有 xperf/WPR(如 CPU 或 DISK)的内核提供程序的巨大好处,您可以看到您的应用程序如何影响系统。