System.Diagnostics.Tracing.EventWrittenEventArgs 类

本文提供了此 API 参考文档的补充说明。

EventWrittenEventArgs 类提供用于 OnEventWritten 回调的数据。

每当事件被调度到某个 EventListener 时,EventListener.OnEventWritten 就会被调用回调方法。 它传递的 EventWrittenEventArgs 实例包含与事件关联的信息。 类的所有属性值 EventWrittenEventArgs 仅在回调期间有效。

以下部分包含有关各个 EventWrittenEventArgs 属性的其他信息。

ActivityId 属性

使用 System.Activities.Activity 及其派生类时,线程可以标记为具有与其关联的活动。 该 ActivityId 属性返回记录事件的线程的活动 ID。 请注意,线程不必有一个活动,在这种情况下,此属性返回 Guid.Empty

OSThreadId 和 TimeStamp 属性

从 .NET Core 2.2 开始,除了对象发出的EventListener事件外,EventSource对象还可以订阅本机运行时事件(如 GC、JIT 和线程池事件)。 在以前版本的 .NET Core 和所有版本的 .NET Framework 中,可以从环境中获取线程 ID 和时间戳,因为它们是在相同发出线程上同步调度的。 但是,并非所有本机运行时事件都可以同步调度。 某些事件(如 GC 事件)在托管线程执行暂停时发出。 这些事件缓存在原生代码中,并在托管代码准备再次执行时由调度线程进行调度。 由于这些事件已缓冲,因此环境不能用于可靠地检索线程 ID 和时间戳。 因此,从 .NET Core 2.2 开始,线程 ID 和时间戳信息可用作类的成员 EventWrittenEventArgs

RelatedActivityId 属性

相关活动是与当前活动密切相关的活动。 通常,导致当前活动的是某个活动(与Start操作码关联的事件通常执行此作用)或由当前活动创建的活动(与Send操作码关联的事件通常执行此作用)。 使用时,该方法会将 RelatedActivityID 显式传递给执行日志记录的方法。 许多事件不会传递 RelatedActivityId,在这种情况下,此属性返回 Guid.Empty