logging - 与常规 EventLog API 相比,使用 ETW EventSources 有何优势?

标签 logging .net-4.5 etw

我们目前正在研究更换系统上的日志记录。在许多地方,我们已经在使用常规的 EventLog API,如果事件源不存在,它会自动创建事件源。

我想知道将我们的代码转换为正确使用 EventSources 而不是仅使用常规 EventLog API(非常易于使用)有多少好处。这值得做吗?

我们希望实现日志记录(我们希望了解单个成功/错误/信息/警告状态事件)和跟踪。

最佳答案

Eventlog 是从 Vista 开始的内部 ETW(仅供引用)。

对于跟踪事件日志没有帮助。您会使事件日志 float ,其中包含太多条目。使用 Eventsource,只有在您收听数据(xperf、WPR、PerfView)时才会发送数据,因此这不会影响性能。

如果您仍然需要事件日志条目,您还可以使用 EventSource 写入事件日志。

微软发布了NuGet Package of Microsoft EventSource Library几周前。

微软在这里解释了如何使用它:

<强> Announcing the EventSource NuGet Package – Write to the Windows Event Log

使用 Eventsource 时,您可以获得 also adding Kernel providers with xperf/WPR like CPU or DISK and you can see how your application impacts the system 的巨大好处.

关于logging - 与常规 EventLog API 相比,使用 ETW EventSources 有何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18921406/

相关文章:

debugging - 如何使用 PureScript 进行调试?

logging - 更改 WandB 日志记录目录

c# - 异步 CTP - 环境 CancellationToken 和 IProgress

c# - async void 事件处理程序 - 澄清?

asp.net - 使用 ETW 捕获传入 HTTP 请求和传出 HTTP 请求

windows - Windows 事件跟踪 : OpenTrace/ProcessTrace not returning any events - callback not being called

.net-4.5 - .Net 4.5 EventSource ETW 提供程序未显示在提供程序列表中

python - 在自定义类中包装记录器功能时显示正确的 funcName

c# - WPF。如何获取 TextBlock 的 DrawingContext?

java - web.xml中debug是什么意思