Debug Trace

最近やっとC#を再開した。


private void button1_Click(object sender, EventArgs e) {
//
//
//Debug クラス
  // ・デバッグビルド時に有効となる
   // Releaseビルド時には、無効となる
//using System.Diagnostics; 必要
//サポート対象Framework : 2.0、1.1、1.0



//: デバッグコンソールに文字を出力する
Debug.WriteLine("ボタンのTextプロパティ=" + ( (Button)sender ).Text);

//: クラスのToString で出力する
Debug.WriteLine(button1);

//: カテゴリを指定して出力する
Debug.WriteLine("カテゴリを指定した出力", "カテゴリ名");

//: 条件指定してデバッグを出力する
Debug.WriteLineIf(checkBox1.Checked, "条件がtrueの場合だけ出力されます");

//: インデントしてデバッグを出力する
Debug.Indent();
Debug.WriteLine("インデントしたDebug出力");
Debug.Unindent();

}

private void button2_Click(object sender, EventArgs e) {
//Trace クラス
  //・デバッグおよびReleaseビルド時に有効となる
//
//TaceSwitch クラス
  //・コードを再コンパイルせずに、トレースやデバッグの出力を制御する複数レベルのスイッチを提供します。 ・App.config で外部的に設定します。
//using System.Diagnostics; 必要
//サポート対象Framework : 2.0、1.1、1.0

//: TraceSwitch クラスを生成して、App.config からレベルを取得します
TraceSwitch traceLevel = new TraceSwitch("TraceSwitch", "TraceSwitchテスト");

//: レベルがError以上の時は出力する
if ( traceLevel.TraceError )
Trace.WriteLine("Errorレベルのトレース");

//: レベルがWarning以上の時は出力する
if (traceLevel.TraceWarning)
Trace.WriteLine("Warningレベルのトレース");

//: レベルがInfo以上の時は出力する
if ( traceLevel.TraceInfo )
Trace.WriteLine("Infoレベルのトレース");

//App.config に設定する値について
// 値 メンバ名 説明
// 0 Off トレース メッセージおよびデバッグ メッセージを出力しません。
// 1 Error エラー処理メッセージを出力。
// 2 Warning 警告およびエラー処理メッセージを出力します。
// 3 Info 情報メッセージ、警告、およびエラー処理メッセージを出力。
// 4 Verbose すべてのデバッグ メッセージおよびトレース メッセージを出力します。

}

こんな感じですかね。