方法: トレース リスナーを作成し初期化する
Note
この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含め、.NET の新しい実装には適用されません。
System.Diagnostics.Debug クラスと System.Diagnostics.Trace クラスは、メッセージの受け取りと処理を実行する、リスナーと呼ばれるオブジェクトにメッセージを送ります。 トレースまたはデバッグを有効にすると、こうしたリスナーの 1 つである System.Diagnostics.DefaultTraceListener が自動的に作成および初期化されます。 Trace または Debug の出力を別のソースに送るには、別のトレース リスナーを作成して初期化する必要があります。
作成するリスナーには、アプリケーションのニーズが反映されている必要があります。 たとえば、すべてのトレース出力のテキスト レコードが必要である場合は、有効になったときにすべての出力を新しいテキスト ファイルに書き込む TextWriterTraceListener リスナーを作成します。 一方、アプリケーションの実行時にのみ出力を表示する場合は、すべての出力をコンソール ウィンドウに送る ConsoleTraceListener リスナーを作成します。 EventLogTraceListener は、トレース出力をイベント ログに転送することができます。 詳細については、「トレース リスナー」を参照してください。
トレース リスナーは、アプリケーション構成ファイルまたはコードで作成できます。 アプリケーション構成ファイルではコードを変更せずにトレース リスナーを追加、変更、または削除できるので、アプリケーション構成ファイルを使用することをお勧めします。
構成ファイルを使用してトレース リスナーを作成して使用するには
アプリケーション構成ファイルでトレース リスナーを宣言します。 作成しているリスナーで他のオブジェクトが必要な場合は、必要なオブジェクトも宣言します。 テキスト ファイル
TextWriterOutput.log
への書き込みを実行するmyListener
というリスナーの作成方法を次の例に示します。<configuration> <system.diagnostics> <trace autoflush="false" indentsize="4"> <listeners> <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" /> <remove name="Default" /> </listeners> </trace> </system.diagnostics> </configuration>
コードで Trace クラスを使用して、メッセージをトレース リスナーに書き込みます。
Trace.TraceInformation("Test message.") ' You must close or flush the trace to empty the output buffer. Trace.Flush()
Trace.TraceInformation("Test message."); // You must close or flush the trace to empty the output buffer. Trace.Flush();
コードでトレース リスナーを作成して使用するには
トレース リスナーを Listeners コレクションに追加し、トレース情報をリスナーに送ります。
Trace.Listeners.Add(New TextWriterTraceListener("TextWriterOutput.log", "myListener")) Trace.TraceInformation("Test message.") ' You must close or flush the trace to empty the output buffer. Trace.Flush()
Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener")); Trace.TraceInformation("Test message."); // You must close or flush the trace to empty the output buffer. Trace.Flush();
- または -
リスナーがトレース出力を受け取らないようにするには、リスナーを Listeners コレクションに追加しないようにします。 リスナー自体の出力メソッドを呼び出すことにより、Listeners コレクションから独立したリスナーを通じて出力を生成できます。 Listeners コレクションに属さないリスナーに行を書き込む方法を次の例に示します。
Dim myListener As New TextWriterTraceListener("TextWriterOutput.log", "myListener") myListener.WriteLine("Test message.") ' You must close or flush the trace listener to empty the output buffer. myListener.Flush()
TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput.log", "myListener"); myListener.WriteLine("Test message."); // You must close or flush the trace listener to empty the output buffer. myListener.Flush();
関連項目
.NET