本文提供了此 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。