2012-11-27 11 views

答えて

1

おかげで、あなたのすべてが、私は見ているときにI Visual Studioからプログラムを実行すると、すべてのスレッドから処理されない例外がスローされたときに.NETによってコンソールウィンドウに書き込まれたトレースの出力がコンソールウィンドウにリダイレクトされません。

Visual Studioとは別にプログラムを実行するとリダイレクトされます。 このコードは、処理されない例外をスローするスレッドからのすべてのスタックトレースを表示するのに非常に適しています。

Trace.Listeners.Clear(); 

     TextWriterTraceListener twtl = new TextWriterTraceListener(Path.Combine(Environment.CurrentDirectory, "logfile.txt")); 
     twtl.Name = "TextLogger"; 
     twtl.TraceOutputOptions = TraceOptions.ThreadId | TraceOptions.DateTime | TraceOptions.Callstack; 

     ConsoleTraceListener ctl = new ConsoleTraceListener(false); 
     ctl.TraceOutputOptions = TraceOptions.DateTime; 

     Trace.Listeners.Add(twtl); 
     Trace.Listeners.Add(ctl); 
     Trace.AutoFlush = true; 
0

あなたは以下のようにex.StackTraceによってcatchブロックでスタックトラックを取得することができます。

try 
{ 
    //Your code; 
} 
catch(Exception ex) 
{ 
    string innerException = ex.InnerException; 
    string stackTrac = ex.StackTrace; 
    //Write this stackTrac to any file where you want 
} 
関連する問題