次の方法で共有


方法 : トレース リスナーを作成し初期化する

System.Diagnostics.Debug クラスと System.Diagnostics.Trace クラスは、メッセージの受け取りと処理を行うリスナーと呼ばれるオブジェクトに、メッセージを送ります。 トレースまたはデバッグを有効にすると、こうしたリスナーの 1 つである System.Diagnostics.DefaultTraceListener が自動的に作成および初期化されます。 Trace または Debug の出力を別のソースに送るには、別のトレース リスナーを作成して初期化する必要があります。

作成するリスナーには、アプリケーションのニーズが反映されている必要があります。 たとえば、すべてのトレース出力のテキスト レコードが必要である場合は、有効になったときにすべての出力を新しいテキスト ファイルに書き込む TextWriterTraceListener リスナーを作成します。 また、アプリケーションの実行時に出力を表示するだけの場合は、すべての出力をコンソール ウィンドウに送る ConsoleTraceListener リスナーを作成します。 EventLogTraceListener はトレース出力をイベント ログに送ります。 詳細については、「トレース リスナー」を参照してください。

トレース リスナーは、アプリケーション構成ファイルまたはコードで作成できます。 アプリケーション構成ファイルではコードを変更せずにトレース リスナーを追加、変更、または削除できるので、アプリケーション構成ファイルを使用することをお勧めします。

構成ファイルを使用してトレース リスナーを作成し、使用するには

  1. アプリケーション構成ファイルでトレース リスナーを宣言します。 作成しているリスナーで他のオブジェクトが必要な場合は、必要なオブジェクトも宣言します。 テキスト ファイル 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>
    
  2. コードで 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();
    

参照

処理手順

方法 : アプリケーションのコードをトレースする

方法 : アプリケーション コードにトレース ステートメントを追加する

概念

トレース リスナー

トレース スイッチ

その他の技術情報

アプリケーションのトレースとインストルメント