2011-07-08 9 views
2

オーケー、私は:)のCs-スクリプト&System.Diagnostics.Debug:オーバーライドデバッグ出力トレース

私のアプリケーションは、スクリプト・インターフェースとしてCS-スクリプトを使用している...タイトルは非常に混乱することができると思います。 私のアプリケーションが実行されているスクリプトでは、何らかの「デバッグプリント」が必要です - スクリプトのどこかで "Debug.Print(" BLAAAAH !!! ");")と表示されます私の非常にファンキーな出力ダイアログのどこかで。

私は独自のデバッグooutput-stuffを作成できますが、私はC#をスクリプト言語として使用しており、C#を使用する人はSystem.Diagnosticsを使用してDebug.Print( "... ")、 System.Diagnostics.Debug.Print(" ")とSystem.Diagnostics.Debug.WriteLine(" ... ")を再ルーティングして、出力をクールな出力ウィンドウにトレースできれば素晴らしいと思います。

So.

C#のSystem.Diagnostic.Debugの印刷/書き込み出力を制御できるものに再ルーティングすることができるかどうかは誰にも分かりますか?

+0

CSスクリプトとは何ですか? –

答えて

0

この場合、カスタムTraceListenerを作成することができます。

0

あなたはコンパイル時のデバッグシンボルを設定するか、/のDBGオプションでスクリプトを実行する必要があります。また、カスタムTraceListenerを作成したり、単にSysinternalsのようにトレースビューアを使用する必要があります

cscs /dbg <yourScript> 

DebugView

0

また、私は、このためのTraceListenerを使用していますが、ここに私のコードスニペットです:

クラス:

デバッグメッセージを受信するには、DebugOutputListenerのインスタンスをインスタンス化し、DebugMessageイベントハンドラにサブスクライブし、そのリスナーをDebug.Listenersコレクションに登録します。

private void InitialiseDebugListener() 
{ 
    DebugListener dl = new DebugListener(); 
    dl.DebugMessage += new EventHandler<DebugArgs>(Console_OnDebugMessage); 
    Debug.Listeners.Add(dl); 
} 


private void Console_OnDebugMessage(object sender, DebugMessageArgs e) 
{ 
    string debugMessage = e.Message; 

    // Do what you want with debugMessage. 
    // Be aware this may not come in on the application/form thread. 
} 
関連する問題