2012-11-27 19 views

cevap

1

teşekkür hepiniz, ama gördüğüm zaman ben Visual Studio'dan programı çalıştırarak, herhangi bir iş parçacığının işlenmemiş bir özel durumu atıldığında, konsol penceresi için .NET tarafından yazılan iz çıktı konsol penceresine yönlendirilmez.

Ben Visual Studio ayrılan programı çalıştırdığınızda sadece yönlendirilir. Bu nedenle, bu kod, işlenmeyen bir özel durum oluşturan tüm iş parçacıklarından tüm yığın izlerini görmek için çok iyi.

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

aşağıdaki gibi ex.StackTrace tarafından catch bloğunda yığın izini alabilirsiniz:

try 
{ 
    //Your code; 
} 
catch(Exception ex) 
{ 
    string innerException = ex.InnerException; 
    string stackTrac = ex.StackTrace; 
    //Write this stackTrac to any file where you want 
} 
İlgili konular