トレース ログ管理クイック スタート
次のセクションでは、トレース ログを .NET コードに追加するために必要な基本的な手順について説明します。
前提条件
- .NET 4.6 以降。
SimpleTraceLoggingExample.cs
この例では、個別のインストルメンテーション マニフェスト XML ファイルを手動で作成することなく、TraceLogging イベントをログに記録する方法を示します。
using System;
using System.Diagnostics.Tracing;
namespace SimpleTraceLoggingExample
{
class Program
{
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
static void Main(string[] args)
{
log.Write("Event 1"); // write an event with no fields
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
}
}
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
}
EventSource を作成する
イベントをログに記録する前に、EventSource クラスのインスタンスを作成する必要があります。 最初のコンストラクター パラメーターは、このプロバイダーの名前を識別します。 この例に示すように、プロバイダーは自動的に登録されます。
private static EventSource log = new EventSource("SimpleTraceLoggingProvider");
インスタンスは静的です。アプリケーションには特定のプロバイダーのインスタンスが一度に 1 つだけ存在する必要があるためです。
ログ トレース ログ イベント
プロバイダーが作成された後、上記の例の次のコードは単純なイベントをログに記録します。
log.Write("Event 1"); // write an event with no fields
構造化イベント ペイロード データをログに記録する
イベントでログに記録される構造化ペイロード データを定義できます。 次の例に示すように、 属性で注釈が付けられた [EventData]
クラスのインスタンスとして、または匿名型として構造化ペイロード データを指定します。
log.Write("Event 2", new { someEventData = DateTime.Now }); // Sending an anonymous type as event data
ExampleStructuredData EventData = new ExampleStructuredData() { TransactionID = 1234, TransactionDate = DateTime.Now };
log.Write("Event 3", EventData); // Sending a class decorated with [EventData] as event data
次に示すように、定義した [EventData]
イベント ペイロード クラスに 属性を追加する必要があります。
[EventData] // [EventData] makes it possible to pass an instance of the class as an argument to EventSource.Write()
public sealed class ExampleStructuredData
{
public int TransactionID { get; set; }
public DateTime TransactionDate { get; set; }
}
属性は、イベント データを記述するためにマニフェスト ファイルを手動で作成する必要性に代わるものになります。 これで、 クラスのインスタンスを EventSource.Write() メソッドに渡して、イベントと対応するペイロード データをログに記録するだけで済みます。
まとめと次のステップ
最新の内部バージョンの Windows パフォーマンス ツール (WPT) を使用してトレース ログ データをキャプチャおよび表示する方法については、「トレース ログ イベントの記録と表示 」を参照してください。
詳細な管理 されたトレース ログの例については、「.NET TraceLogging の例」を参照してください。