2009-10-14 23 views
5

我想爲日誌記錄構建格式良好的異常字符串。這樣做從silverlight所以選項如nlog(not there yet),log4net不是一個選項。恰當地將異常格式化爲字符串

看到有任何的代碼來建立類似:

ExceptionType: xxxx 
Message: xxxx 
StackTrace: XXX 
InnerException 
    ExceptionType: xxxx 
    Message: xxxx 
    StackTrace: XXX 

我目前寫我自己,只是希望有一個代碼在那裏做一些更好。

UPDATE:我正要關閉這個q,因爲我得出了與Zach相同的結論,但不會剝奪Zach的要點! :)

的的ToString()看起來是這樣的:

 
System.Exception: I can't handle this ---> System.DivideByZeroException: Attempted to divide by zero. 
    at MuckingAround.RussTest_Click(Object sender, RoutedEventArgs e) 
    --- End of inner exception stack trace --- 
    at MuckingAround.RussTest_Click(Object sender, RoutedEventArgs e) 
    at System.Windows.Controls.Primitives.ButtonBase.OnClick() 
    at System.Windows.Controls.Button.OnClick() 
    at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) 
    at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e) 
    at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName) 

回答

13

你應該簡單地調用異常的.ToString()方法得到這一切。我們使用它來記錄信息,並獲得我相信您所要求的一切。有關更多信息,請參閱MSDN System.Exception.ToString()

0

只是爲了完整:EntLib記錄器允許您爲應用程序異常定義格式化程序。

相關問題