C# 很好地将异常格式化为字符串
我想构建一个格式良好的异常字符串用于日志记录。从silverlight执行此操作,因此诸如nlog()、log4net之类的选项不是选项 有人看到过构建类似以下内容的代码:C# 很好地将异常格式化为字符串,c#,.net,silverlight,exception-handling,C#,.net,Silverlight,Exception Handling,我想构建一个格式良好的异常字符串用于日志记录。从silverlight执行此操作,因此诸如nlog()、log4net之类的选项不是选项 有人看到过构建类似以下内容的代码: ExceptionType: xxxx Message: xxxx StackTrace: XXX InnerException ExceptionType: xxxx Message: xxxx StackTrace: XXX 我现在自己写,只是希望有代码可以做得更好 更新:我正要结束这个问题,因
ExceptionType: xxxx
Message: xxxx
StackTrace: XXX
InnerException
ExceptionType: xxxx
Message: xxxx
StackTrace: XXX
我现在自己写,只是希望有代码可以做得更好
更新:我正要结束这个问题,因为我得出了与扎克相同的结论,但不会剥夺扎克的分数!:)
.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)
System.Exception:我无法处理此-->System.DivideByZeroException:试图除以零。
在MuckingAround.RussTest_单击(对象发送器,路由目标e)
---内部异常堆栈跟踪的结束---
在MuckingAround.RussTest_单击(对象发送器,路由目标e)
在System.Windows.Controls.Primitives.ButtonBase.OnClick()中
在System.Windows.Controls.Button.OnClick()中
在System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
在System.Windows.Controls.Control.OnMouseLeftButtonUp(控件ctrl,事件参数e)
在MS.Internal.JoltHelper.firevent处(IntPtr unmanagedObj、IntPtr unmanagedobjars、Int32 argsTypeIndex、String eventName)
您只需调用异常的
.ToString()
方法即可获得所有这些。我们用它来记录信息,你会得到我认为你想要的一切。有关更多信息,请参见MSDN。仅为了完整性:EntLib日志记录器允许您为应用程序异常定义格式化程序。另外,请看下一步的内容,它将解决LOB开发人员的许多交叉问题,包括日志记录和异常处理
请随意评论功能,也请投票