Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在ASP.NET中记录异常?_C#_.net_Asp.net_Logging_Exception - Fatal编程技术网

C# 如何在ASP.NET中记录异常?

C# 如何在ASP.NET中记录异常?,c#,.net,asp.net,logging,exception,C#,.net,Asp.net,Logging,Exception,我应该如何记录异常?我以前从未尝试过登录.NET。也不要尝试将异常转储到txt(或二进制)文件。我不需要文本文件,只需要一种查看带有文件和行的日志的方法 -编辑-使用asp.net是一个非常漂亮的标准系统。非常值得学习,您可以使用多种格式(或自定义)登录。(编辑:但是,据我所知,Silverlight还不支持它,如果您对此感兴趣,那么您可能需要在那里实现自己的系统)。企业库日志记录应用程序块是一个选项。它可能比您需要的多(或少),但对我来说效果很好。如果您使用的是ASP.NET,它会特别好。关于

我应该如何记录异常?我以前从未尝试过登录.NET。也不要尝试将异常转储到txt(或二进制)文件。我不需要文本文件,只需要一种查看带有文件和行的日志的方法


-编辑-使用asp.net是一个非常漂亮的标准系统。非常值得学习,您可以使用多种格式(或自定义)登录。(编辑:但是,据我所知,Silverlight还不支持它,如果您对此感兴趣,那么您可能需要在那里实现自己的系统)。

企业库日志记录应用程序块是一个选项。它可能比您需要的多(或少),但对我来说效果很好。

如果您使用的是ASP.NET,它会特别好。关于ELMAH,我最喜欢的特性之一是不必构建UI来查看记录的异常;ELMAH提供了一个报告异常的处理程序。然而,除了异常之外,我从来没有使用过它来记录任何东西

log4net和其他一些想法浮现在脑海中。如果您真正需要的只是异常日志记录,那么它们提供了比您可能需要的更多的功能

也可以考虑,如果你真的想做的是测量你的应用程序。同样,使用性能计数器的好处是,发布数据后,您不必担心构建UI来查看/查询数据。

有关记录异常的信息,请查看项目:


对于其他类型的日志记录,您不能忽略。

Log4Net很棒,学习起来也很快。对于许多额外的功能和可视化,有。

我同意提到ELMAH的那些

ELMAH唯一的缺点是它不能记录实际用户发起请求之外发生的异常。因此,如果您使用计时器或有大量代码在应用程序启动类型事件之外运行,则必须手动记录这些异常。ELMAH最棒的地方在于它的设置非常简单,并且附带了一个UI,因此您可以实际查看日志(我无法理解为什么其他日志记录器似乎都没有附带UI)

Log4Net是一个更完整的日志解决方案,如果您想进行诊断日志记录、信息日志记录,或者想记录“非错误”的内容,它尤其好。比企业库更易于配置和使用

Enterprise Library的日志组件也很流行,但EntLib也和货运列车一样轻巧,特别是如果您不使用EntLib提供的其余功能的话。

  • 而且课程非常有用

  • log4net是非常好的选择

    • 很不错。它比log4net更容易配置…

      您似乎对编程非常陌生,最近试图找出更高级的主题。如果您只想查看异常的文件和行#,那么您当然不需要使用任何日志实用程序,如Log4net或Microsoft Enterprise Library

      现在,开始将代码放入try-catch块,并在catch块中处理异常(如果有)

      try
      {
      
      }
      catch(Exception ex)
      {
         //handle exception
      }
      
      在这里的异常中,您可以找到堆栈跟踪,这将使您确切地知道代码失败的方法和行


      希望这能有所帮助。

      NLOG看起来不错。。但它只是记录一般信息吗。。不例外。。?或者这就是InfoException吗?e、 在调试模式下,您可能需要计算并记录循环的迭代次数


      还有其他人在解压Log4Net下载时遇到困难吗?这不是一个直接的答案,但我们发现有一件事对于用我们自己的代码记录问题很有用,那就是创建一个基本异常类(继承自异常),并使用Log4Net(或其他什么)自动记录异常详细信息,在所有派生的异常中

      显然,这不会记录其他类型的异常(BCL、第三方),但它很有用


      关于记录异常的另一件事是,如果您想要完整的堆栈跟踪,请使用Exception.ToString()而不仅仅是Exception.Message。

      实际上,由于ASP.NET 2.0,您实际上不必记录任何异常。ASP.NET运行状况监视可以为您做到这一点。默认情况下,它会将异常作为警告记录到应用程序事件日志中

      此过程可以通过配置进行自定义


      请参阅。

      当我们在这里插入各种日志框架时,让我插入。它安装简单,与ASP.NET集成良好,但缺少像ELMAH这样的查看器。

      能否提供有关应用程序类型的更多信息?它是一个客户端应用程序(WinForms、WPF)、web(ASP.NET web Forms或MVC)、Silverlight吗?在我看来,这个问题与链接Alastair并不完全相同。他特别提到了例外情况。就个人而言,我记录的异常不止这些,但我不打算在这里开始假设。“坚持目标”。快速谷歌搜索提供了很多有用的信息。@acidzombie24:但你的问题是#3在搜索结果中…@Esteban:这几乎就像一个递归问题,最终可能会导致。。嗯,你知道回答得很好。我已经在我的应用程序中下载、播放并实现了elmah。谢谢:)@acidzombie:我很高兴ELMAH为你锻炼。非常棒。:)+1给艾玛。一个很棒的解决方案。如果您发现不止一个应用程序使用ELMAH,请查看CodePlex上的ASP.Net异常报告器这是一个集中式ELMAH聚合应用程序。ELMAH非常棒。我喜欢。到处都可以使用。@Jamesegers:太好了!我很高兴你提到这件事。我们即将开始为我们所有的网络应用程序构建类似的东西。我支持!它做得很好:)只需几分钟就配置好了……渲染器让它变得更好:问题在于“如何记录异常”而不是“如何处理异常”。实际上,您可以创建自己的异常类,记录它,并让ELMAH忽略它,以便在实际问题发生时通过电子邮件发送给您。