我想为日志记录构建一个格式良好的异常字符串。从silverlight执行此操作,因此nlog(not there yet),log4net等选项不是一个选项。
任何人都可以看到构建类似代码的代码:
ExceptionType: xxxx
Message: xxxx
StackTrace: XXX
InnerException
ExceptionType: xxxx
Message: xxxx
StackTrace: XXX
我现在正在自己编写,只是希望有代码可以做更好的事情。
更新:当我得出与Zach相同的结论时,我正准备关闭这个q,但不会剥夺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)
答案 0 :(得分:16)
您应该通过简单地调用异常的.ToString()
方法来获得所有这些。我们使用它来记录信息,你得到我认为你要求的一切。有关详细信息,请参阅MSDN System.Exception.ToString()
。
答案 1 :(得分:0)
为了完整性:EntLib记录器允许您为应用程序异常定义格式化程序。
答案 2 :(得分:0)
另外,请看一下Enterprise Library 5.0 Silverlight Integration Pack中的内容,它将解决LOB开发人员的许多跨领域问题,包括日志记录和异常处理。
随意评论这些功能,也请投票!