很好地将异常格式化为字符串

rus*_*sau 7 .net c# silverlight exception-handling

我想为日志记录构建一个格式良好的异常字符串.从silverlight这样做,所以像nlog这样的选项(还没有),log4net不是一个选项.

任何人都看到了构建类似的代码:

ExceptionType: xxxx
Message: xxxx
StackTrace: XXX
InnerException
    ExceptionType: xxxx
    Message: xxxx
    StackTrace: XXX
Run Code Online (Sandbox Code Playgroud)

我现在正在自己编写,只是希望有代码可以做更好的事情.

更新:当我得出与扎克相同的结论时,我正准备关闭这个q,但不会剥夺扎克的观点!:)

.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)

Zac*_*ham 16

你应该通过简单地调用.ToString()异常的方法来获得所有这些.我们使用它来记录信息,你得到我认为你要求的一切.有关System.Exception.ToString()更多信息,请参阅MSDN .