この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

EventSource クラス

.NET Framework (current version)
 

公開日: 2016年11月

Windows イベント トレーシング (ETW: Event Tracing for Windows) のイベントを作成できます。

名前空間:   System.Diagnostics.Tracing
アセンブリ:  mscorlib (mscorlib.dll 内)

System.Object
  System.Diagnostics.Tracing.EventSource

public class EventSource : IDisposable

名前説明
System_CAPS_protmethodEventSource()

EventSource クラスの新しいインスタンスを作成します。

System_CAPS_protmethodEventSource(Boolean)

EventSource クラスの新しいインスタンスを作成し、基になる Windows コードでエラーが発生した場合に例外をスローするかどうかを指定します。

System_CAPS_protmethodEventSource(EventSourceSettings)

指定した構成設定を使用して EventSource クラスの新しいインスタンスを作成します。

System_CAPS_protmethodEventSource(EventSourceSettings, String[])

指定した設定と特徴が含まれるコントラクト以外のイベントで使用される EventSource の新しいインスタンスを初期化します。

System_CAPS_pubmethodEventSource(String)

指定した名前を使用して、EventSource クラスの新しいインスタンスを作成します。

System_CAPS_pubmethodEventSource(String, EventSourceSettings)

指定した名前と設定を使用して、EventSource クラスの新しいインスタンスを作成します。

System_CAPS_pubmethodEventSource(String, EventSourceSettings, String[])

指定した構成設定を使用して EventSource クラスの新しいインスタンスを作成します。

名前説明
System_CAPS_pubpropertyConstructionException

[.NET Framework 4.5.1 以降のバージョンでサポート]

イベント ソースの作成中にスローされた例外を取得します。

System_CAPS_pubpropertySystem_CAPS_staticCurrentThreadActivityId

[.NET Framework 4.5.1 以降のバージョンでサポート]

現在のスレッドのアクティビティ ID を取得します。

System_CAPS_pubpropertyGuid

イベント ソースの一意の識別子。

System_CAPS_pubpropertyName

イベント ソースから派生するクラスの表示名。

System_CAPS_pubpropertySettings

このイベント ソースに適用される設定を取得します。

名前説明
System_CAPS_pubmethodDispose()

EventSource クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。

System_CAPS_protmethodDispose(Boolean)

EventSource クラスによって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

EventSource オブジェクトがガベージ コレクションによって収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。(Object.Finalize() をオーバーライドします。)

System_CAPS_pubmethodSystem_CAPS_staticGenerateManifest(Type, String)

現在のイベント ソースに関連付けられている XML マニフェストの文字列を返します。

System_CAPS_pubmethodSystem_CAPS_staticGenerateManifest(Type, String, EventManifestOptions)

現在のイベント ソースに関連付けられている XML マニフェストの文字列を返します。

System_CAPS_pubmethodSystem_CAPS_staticGetGuid(Type)

イベント ソースのこの実装の一意の識別子を取得します。

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodSystem_CAPS_staticGetName(Type)

イベント ソースのフレンドリ名を取得します。

System_CAPS_pubmethodSystem_CAPS_staticGetSources()

アプリケーション ドメインのすべてのイベント ソースのスナップショットを取得します。

System_CAPS_pubmethodGetTrait(String)

指定したキーに関連付けられている特徴値を取得します。

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodIsEnabled()

現在のイベント ソースが有効かどうかを判断します。

System_CAPS_pubmethodIsEnabled(EventLevel, EventKeywords)

指定したレベルとキーワードを持つ現在のイベント ソースが有効かどうかを判断します。

System_CAPS_pubmethodIsEnabled(EventLevel, EventKeywords, EventChannel)

現在のイベント ソースが、指定したレベル、キーワード、およびチャネルを持つイベントに対して有効かどうかを判断します。

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_protmethodOnEventCommand(EventCommandEventArgs)

現在のイベント ソースがコントローラーによって更新されるときに呼び出されます。

System_CAPS_pubmethodSystem_CAPS_staticSendCommand(EventSource, EventCommand, IDictionary<String, String>)

指定されたイベント ソースにコマンドを送信します。

System_CAPS_pubmethodSystem_CAPS_staticSetCurrentThreadActivityId(Guid)

[.NET Framework 4.5.1 以降のバージョンでサポート]

現在のスレッドのアクティビティ ID を設定します。

System_CAPS_pubmethodSystem_CAPS_staticSetCurrentThreadActivityId(Guid, Guid)

[.NET Framework 4.5.1 以上でサポート]

現在のスレッドでは、アクティビティ ID を設定し、前のアクティビティの ID を返します。

System_CAPS_pubmethodToString()

現在のイベント ソース インスタンスを文字列で表現したものを取得します。(Object.ToString() をオーバーライドします。)

System_CAPS_pubmethodWrite(String)

フィールドを除いてイベントを書き込みます。ただし、指定した名前および既定のオプションを含みます。

System_CAPS_pubmethodWrite(String, EventSourceOptions)

フィールドを除いてイベントを書き込みます。ただし、指定した名前およびオプションを含みます。

System_CAPS_pubmethodWrite<T>(String, T)

指定した名前とデータを使用してイベントを書き込みます。

System_CAPS_pubmethodWrite<T>(String, EventSourceOptions, T)

指定した名前、イベント データ、およびオプションを使用してイベントを書き込みます。

System_CAPS_pubmethodWrite<T>(String, EventSourceOptions, T)

指定した名前、オプション、およびイベント データを使用してイベントを書き込みます。

System_CAPS_pubmethodWrite<T>(String, EventSourceOptions, Guid, Guid, T)

指定した名前、オプション、関連するアクティビティ、およびイベント データを使用してイベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32)

指定されたイベント識別子を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Byte[])

指定されたイベント識別子とバイト配列引数を使用してイベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int32)

指定されたイベント識別子と 32 ビット整数引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int32, Int32)

指定されたイベント識別子と 32 ビット整数引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int32, Int32, Int32)

指定されたイベント識別子と 32 ビット整数引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int32, String)

指定されたイベント識別子と 32 ビット整数および文字列引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int64)

指定されたイベント識別子と 64 ビット整数引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int64, Byte[])

指定した識別子と 64 ビット整数およびバイト配列引数を使用して、イベント データを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int64, Int64)

指定されたイベント識別子と 64 ビットの引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int64, Int64, Int64)

指定されたイベント識別子と 64 ビットの引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Int64, String)

指定されたイベント識別子と 64 ビット整数および文字列引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, Object[])

指定されたイベント識別子と引数の配列を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, String)

指定されたイベント識別子と文字列引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, String, Int32)

指定されたイベント識別子と引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, String, Int32, Int32)

指定されたイベント識別子と引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, String, Int64)

指定されたイベント識別子と引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, String, String)

指定されたイベント識別子と文字列引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEvent(Int32, String, String, String)

指定されたイベント識別子と文字列引数を使用して、イベントを書き込みます。

System_CAPS_protmethodWriteEventCore(Int32, Int32, EventSource.EventData*)

指定したイベント識別子およびイベント データを使用して、WriteEvent の新しいオーバーロードを作成します。

System_CAPS_protmethodWriteEventWithRelatedActivityId(Int32, Guid, Object[])

[.NET Framework 4.5.1 以上でサポート]

現在のアクティビティが別のアクティビティに関連していることを示すイベントを書き込みます。

System_CAPS_protmethodWriteEventWithRelatedActivityIdCore(Int32, Guid*, Int32, EventSource.EventData*)

[.NET Framework 4.5.1 以上でサポート]

現在のアクティビティが別のアクティビティに関連していることを示すイベントを書き込みます。

名前説明
System_CAPS_pubeventEventCommandExecuted

コマンドのソースがイベント リスナーのときに発生します。

This class is intended to be inherited by a user class that provides specific events to be used for ETW. The Overload:System.Diagnostics.Tracing.EventSource.WriteEvent methods are called to log the events.

System_CAPS_important重要

This type implements the T:System.IDisposable interface. When you have finished using the type, you should dispose of it either directly or indirectly. To dispose of the type directly, call its M:System.IDisposable.Dispose method in a try/catch block. To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). For more information, see the “Using an Object that Implements IDisposable” section in the T:System.IDisposable interface topic.

The basic functionality of T:System.Diagnostics.Tracing.EventSource is sufficient for most applications. If you want more control over the ETW manifest that is created, you can apply the T:System.Diagnostics.Tracing.EventAttribute attribute to the methods. For advanced event source applications, it is possible to intercept the commands being sent to the derived event source and change the filtering, or to cause actions (such as dumping a data structure) to be performed by the inheritor. An event source can be activated with Windows ETW controllers, such as the Logman tool, immediately. It is also possible to programmatically control and intercept the data dispatcher. The T:System.Diagnostics.Tracing.EventListener class provides additional functionality.

Starting with net_v46, T:System.Diagnostics.Tracing.EventSource provides channel support and some of the event source validation rules have been relaxed. This means:

  • EventSource types may now implement interfaces. This enables the use of event source types in advanced logging systems that use interfaces to define a common logging target.

  • The concept of a utility event source type has been introduced. This feature enables sharing code across multiple event source types in a project to enable scenarios such as optimized M:System.Diagnostics.Tracing.EventSource.WriteEvent(System.Int32) overloads.

For a version of the T:System.Diagnostics.Tracing.EventSource class that provides features such as channel support you are targeting net_v451 or earlier, see Microsoft EventSource Library 1.0.16https://www.nuget.org/packages/Microsoft.Diagnostics.Tracing.EventSource.

The following example shows a simple implementation of the T:System.Diagnostics.Tracing.EventSource class.

using System.Diagnostics.Tracing;
using System.Collections.Generic;

namespace Demo1
{
    class MyCompanyEventSource : EventSource
    {
        public static MyCompanyEventSource Log = new MyCompanyEventSource();

        public void Startup() { WriteEvent(1); }
        public void OpenFileStart(string fileName) { WriteEvent(2, fileName); }
        public void OpenFileStop() { WriteEvent(3); }
    }

    class Program
    {
        static void Main(string[] args)
        {
            string name = MyCompanyEventSource.GetName(typeof(MyCompanyEventSource));
            IEnumerable<EventSource> eventSources = MyCompanyEventSource.GetSources();
            MyCompanyEventSource.Log.Startup();
            // ...
            MyCompanyEventSource.Log.OpenFileStart("SomeFile");
            // ...
            MyCompanyEventSource.Log.OpenFileStop();
        }
    }
}

The following example shows a more complex implementation of the T:System.Diagnostics.Tracing.EventSource class.

using System;
using System.Diagnostics.Tracing;

namespace Demo2
{
    enum MyColor { Red, Yellow, Blue };

    [EventSource(Name = "MyCompany")]
    class MyCompanyEventSource : EventSource
    {
        public class Keywords
        {
            public const EventKeywords Page = (EventKeywords)1;
            public const EventKeywords DataBase = (EventKeywords)2;
            public const EventKeywords Diagnostic = (EventKeywords)4;
            public const EventKeywords Perf = (EventKeywords)8;
        }

        public class Tasks
        {
            public const EventTask Page = (EventTask)1;
            public const EventTask DBQuery = (EventTask)2;
        }

        [Event(1, Message = "Application Failure: {0}", Level = EventLevel.Error, Keywords = Keywords.Diagnostic)]
        public void Failure(string message) { WriteEvent(1, message); }

        [Event(2, Message = "Starting up.", Keywords = Keywords.Perf, Level = EventLevel.Informational)]
        public void Startup() { WriteEvent(2); }

        [Event(3, Message = "loading page {1} activityID={0}", Opcode = EventOpcode.Start, 
            Task = Tasks.Page, Keywords = Keywords.Page, Level = EventLevel.Informational)]
        public void PageStart(int ID, string url) { if (IsEnabled()) WriteEvent(3, ID, url); }

        [Event(4, Opcode = EventOpcode.Stop, Task = Tasks.Page, Keywords = Keywords.Page, Level = EventLevel.Informational)]
        public void PageStop(int ID) { if (IsEnabled()) WriteEvent(4, ID); }

        [Event(5, Opcode = EventOpcode.Start, Task = Tasks.DBQuery, Keywords = Keywords.DataBase, Level = EventLevel.Informational)]
        public void DBQueryStart(string sqlQuery) { WriteEvent(5, sqlQuery); }

        [Event(6, Opcode = EventOpcode.Stop, Task = Tasks.DBQuery, Keywords = Keywords.DataBase, Level = EventLevel.Informational)]
        public void DBQueryStop() { WriteEvent(6); }

        [Event(7, Level = EventLevel.Verbose, Keywords = Keywords.DataBase)]
        public void Mark(int ID) { if (IsEnabled()) WriteEvent(7, ID); }

        [Event(8)]
        public void LogColor(MyColor color) { WriteEvent(8, (int) color); }

        public static MyCompanyEventSource Log = new MyCompanyEventSource();
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyCompanyEventSource.Log.Startup();
            Console.WriteLine("Starting up");

            MyCompanyEventSource.Log.DBQueryStart("Select * from MYTable");
            var url = "http://localhost";
            for (int i = 0; i < 10; i++)
            {
                MyCompanyEventSource.Log.PageStart(i, url);
                MyCompanyEventSource.Log.Mark(i);
                MyCompanyEventSource.Log.PageStop(i);
            }
            MyCompanyEventSource.Log.DBQueryStop();
            MyCompanyEventSource.Log.LogColor(MyColor.Blue);

            MyCompanyEventSource.Log.Failure("This is a failure 1");
            MyCompanyEventSource.Log.Failure("This is a failure 2");
            MyCompanyEventSource.Log.Failure("This is a failure 3");
        }
    }
}

ユニバーサル Windows プラットフォーム
8 以降で使用可能
.NET Framework
4.5 以降で使用可能
ポータブル クラス ライブラリ
サポート対象: 移植可能 .NET プラットフォーム
Windows Phone
8.1 以降で使用可能

This type is thread safe.

トップに戻る
表示: