次の方法で共有


System.Diagnostics.Tracing.EventWrittenEventArgs クラス

この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。

このクラスは EventWrittenEventArgs 、コールバックのデータを OnEventWritten 提供します。

イベントをディスパッチするたびに、 EventListenerEventListener.OnEventWrittenコールバック メソッドが呼び出されます。 渡される、EventWrittenEventArgsイベントに関連付けられている情報を格納しているインスタンス。 すべてのプロパティ値、EventWrittenEventArgsクラスは、コールバック中にのみ有効です。

次のセクションでは、個人に関する追加情報を含めることがEventWrittenEventArgsプロパティ。

ActivityId プロパティ

使用する場合System.Activities.Activityとその派生クラス、スレッドは、それらに関連付けられているアクティビティを持つものとしてマークできます。 ActivityIdプロパティは、イベント ログに記録したスレッドのアクティビティ ID を返します。 このプロパティの場合、スレッドをアクティビティをである必要はありません注返しますGuid.Emptyします。

OSThreadId とタイムスタンプのプロパティ

.NET Core の 2.2 以降EventListenerオブジェクトは、イベントによって出力されるだけでなく (GC、JIT、スレッド プール イベント) などのネイティブ ランタイム イベントをサブスクライブできますEventSourceオブジェクト。 以前のバージョンの .NET Core および .NET Framework のすべてのバージョンでは、スレッド ID とタイムスタンプは環境から収集できます。これは、スレッド ID とタイムスタンプが生成されたのと同じスレッドに同期的にディスパッチされるためです。 すべてのネイティブ ランタイム イベントがただしディスパッチする同期的には、ことができます。 管理されている場合に、GC イベントなど、一部のイベントが出力されるスレッドの実行を中断します。 これらのイベントは、ネイティブ コードでバッファーに格納され、マネージ コードがもう一度実行することができますとディスパッチャー スレッドがディスパッチされます。 これらのイベントがバッファーされるため、確実にスレッド ID とタイムスタンプを取得する環境を使用できません。 このため、.NET Core の 2.2 以降スレッドの ID とタイムスタンプ情報がのメンバーとして使用可能なEventWrittenEventArgsクラス。

RelatedActivityId プロパティ

関連するアクティビティは、厳密に関連する現在のアクティビティです。 現在のアクティビティの原因となったか、アクティビティは通常、(イベントをStartオペコードが通常はこれを行う) または現在の 1 つによって作成されたアクティビティ (イベントをSendオペコードが通常はこれを行う)。 これを使用する場合、RelatedActivityIDは、ログ記録を行うメソッドによって明示的に渡されます。 多くのイベントを渡さない、 RelatedActivityId、後者を返しますGuid.Emptyします。