方法 : トレース リスナを作成し初期化する
更新 : 2007 年 11 月
Debug クラスと Trace クラスは、メッセージの受け取りと処理を行うリスナと呼ばれるオブジェクトに、メッセージを送ります。トレースまたはデバッグが有効になると、DefaultTraceListener という 1 つのリスナが自動的に作成され初期化されます。詳細については、「トレース リスナ」を参照してください。Trace 出力または Debug 出力を別のソースに送るには、別のトレース リスナを作成して初期化する必要があります。
作成するリスナには、個別の要求が反映されている必要があります。たとえば、すべてのトレース出力のテキスト レコードが必要であるとします。この場合には、有効になったときにすべての出力を新しいテキスト ファイルに書き込むリスナを作成します。また、アプリケーションの実行時に出力を表示するだけの場合もあります。この場合は、すべての出力をコンソール ウィンドウに送るリスナを作成します。EventLogTraceListener はトレース出力をイベント ログに送り、TextWriterTraceListener はトレース出力をストリームに書き込みます。
トレース リスナを作成および初期化するには
トレース リスナを宣言します。作成しているリスナでほかのオブジェクトが必要な場合は、必要なオブジェクトも宣言します。テキスト ファイルに書き込みを行うリスナの作成方法を次の例に示します。
' Creates the text file that the trace listener will write to. Dim myTraceLog As New System.IO.FileStream("C:\myTraceLog.txt", _ IO.FileMode.OpenOrCreate) ' Creates the new trace listener Dim myListener As New TextWriterTraceListener(myTraceLog)
// Creates the text file that the trace listener will write to. System.IO.FileStream myTraceLog = new System.IO.FileStream("C:\\myTraceLog.txt", System.IO.FileMode.OpenOrCreate); // Creates the new trace listener. System.Diagnostics.TextWriterTraceListener myListener = new System.Diagnostics.TextWriterTraceListener(myTraceLog);
トレース出力を生成します。
リスナがすべてのトレース出力を受け取るようにするには、目的のトレース リスナを Listeners コレクションに追加します。
リスナを Listeners コレクションに追加する方法を次の例に示します。
Trace.Listeners.Add(myListener)
System.Diagnostics.Trace.Listeners.Add(myListener);
または
リスナがトレース出力を受け取らないようにするには、トレース リスナを Listeners コレクションに追加しません。リスナ自体の出力メソッドを呼び出すことにより、Listeners コレクションから独立したリスナを通じて出力を生成できます。Listeners コレクションに属さないリスナに行を書き込む方法を次に示します。
myListener.WriteLine( _ "This output will not go to the Listeners collection")
myListener.WriteLine( "This output will not go to the Listeners collection");
リスナが Listeners コレクションのメンバではない場合、Flush メソッドを呼び出して出力を記録する必要があります。
' Flushes the buffers of all listeners in the Listeners collection. Trace.Flush() ' Flushes only the buffer of myListener. myListener.Flush()
// Flushes the buffers of all listeners in the Listeners collection. System.Diagnostics.Trace.Flush(); // Flushes only the buffer of myListener. myListener.Flush();
参照
処理手順
方法 : アプリケーション コードにトレース ステートメントを追加する