如何记录异常到文件中?我希望能够记录每个catch块。像这样的东西。catch(Exception异常){Logger.Write(exception);然后配置中的设置将使用客户端侦听器获取Message和StackTrace属性等。我想使用EnterpriseLibraryLoggingApplicationBlock。我确定一定有人这样做了。其他人已经发布了一些关于让日志应用程序块(LAB)工作的很好的链接,所以我不会在这里重复它们。在格式化异常方面,我可以想到三个选项:使用默认的Exception.ToString()实现(这还不错)编写集成到LAB中的自定义格式化程序。编写一个执行格式化的辅助函数,并将该字符串传递给Write方法。如果选项1不符合您的需要,那么我推荐选项3(因为选项2太过分了)。一个简单的例子是:catch(Exceptionexception){Logger.Write(LogHelper.CreateExceptionString(exception));}...publicstaticstringCreateExceptionString(Exceptione){StringBuildersb=newStringBuilder();CreateExceptionString(sb,e,String.Empty);返回sb.ToString();}privatestaticvoidCreateExceptionString(StringBuildersb,Exceptione,stringindent){if(indent==null){indent=String.Empty;}elseif(indent.Length>0){sb.AppendFormat("{0}Inner",indent);}sb.AppendFormat("ExceptionFound:n{0}Type:{1}",indent,e.GetType().FullName);sb.AppendFormat("n{0}Message:{1}",indent,e.Message);sb.AppendFormat("n{0}Source:{1}",indent,e.Source);sb.AppendFormat("n{0}Stacktrace:{1}",indent,e.StackTrace);如果(e.InnerException!=null){sb.Append("n");CreateExceptionString(sb,e.InnerException,indent+"");}}Microsoft在这里提供了大量指导:使用日志记录应用程序块开发应用程序了解他们所说的非常值得,因为它非常强大。如果您想要更实用的东西,这篇博文中有一些工作示例:如何配置和使用日志记录应用程序块信息。@iSid这就是你要求的publicstaticvoidprintException(Exceptionex){Console.WriteLine("HelpLink={0}",ex.HelpLink);Console.WriteLine("Message={0}",ex.Message);Console.WriteLine("Source={0}",ex.Source);Console.WriteLine("StackTrace={0}",ex.StackTrace);Console.WriteLine("TargetSite={0}",ex.TargetSite);您需要为文本文件添加适当的侦听器-请参阅本文,它适用于ASP.NET,但配置文件在应用程序中的工作方式相同。以上就是C#学习教程:如何在文件中记录异常?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
