次の方法で共有


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

Note

この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含めて、.NET の新しい実装には適用されません。

トレースで最も使用頻度の高いメソッドは、出力をリスナーに書き込むメソッドである WriteWriteIfWriteLineWriteLineIfAssert、および Fail です。 これらのメソッドは、次の 2 つのカテゴリに分類できます。WriteWriteLine、および Fail はすべて出力を無条件に生成します。それに対して、WriteIfWriteLineIf、および Assert はブール条件をテストし、条件の値に基づいて書き込みを行ったり行わなかったりします。 WriteIfWriteLineIf は条件が true の場合に出力を生成し、Assert は条件が false の場合に出力を生成します。

トレースおよびデバッグの方法をデザインするときは、出力の表示方法について検討する必要があります。 関連のない情報で埋め尽くされた複数の Write ステートメントの場合、読みにくいログが作成されます。 その一方で、WriteLine を使用して関連のあるステートメントを別々の行に出力すると、どの情報が関連し合っているかを読み取るのが困難になる場合があります。 一般に、複数のソースからの情報を結合する場合には複数の Write ステートメントを使用して 1 つの情報メッセージを作成し、単一の完全なメッセージを作成する場合には WriteLine ステートメントを使用します。

完結した行を書き込むには

  1. WriteLine メソッドまたは WriteLineIf メソッドを呼び出します。

    このメソッドが返すメッセージの末尾には、キャリッジ リターンが追加されます。したがって、次回の WriteWriteIfWriteLine、または WriteLineIf が返すメッセージは、次の行から開始されます。

    Dim errorFlag As Boolean = False
    Trace.WriteLine("Error in AppendData procedure.")
    Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.")
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure.");
    System.Diagnostics.Trace.WriteLineIf(errorFlag,
       "Error in AppendData procedure.");
    

完結しない行を書き込むには

  1. Write メソッドまたは WriteIf メソッドを呼び出します。

    WriteWriteIfWriteLine または WriteLineIf によって次に書き込まれるメッセージは、今回の Write または WriteIf ステートメントによって書き込まれるメッセージと同じ行から開始されます。

    Dim errorFlag As Boolean = False
    Trace.WriteIf(errorFlag, "Error in AppendData procedure.")
    Debug.WriteIf(errorFlag, "Transaction abandoned.")
    Trace.Write("Invalid value for data request")
    
    bool errorFlag = false;
    System.Diagnostics.Trace.WriteIf(errorFlag,
       "Error in AppendData procedure.");
    System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");
    Trace.Write("Invalid value for data request");
    

メソッドの実行前または実行後に特定の条件が存在するかどうかを確認するには

  1. Assert メソッドを呼び出します。

    Dim i As Integer = 4
    Trace.Assert(i = 5, "i is not equal to 5.")
    
    int i = 4;
    System.Diagnostics.Trace.Assert(i == 5, "i is not equal to 5.");
    

    Note

    Assert は、トレースとデバッグの両方で使用できます。 この例では、呼び出し履歴を Listeners コレクションのリスナーに出力しています。 詳細については、「マネージド コードのアサーション」および「Debug.Assert」を参照してください。

関連項目