1

有人可以建议 - 我们希望将详细的错误消息记录到文本文件或 sql 服务器中,以了解我们创建的 .net 库中发生的任何错误。

Try
    'Here we are using the sql command object to fetch the required data
    Catch ex As Exception
    'Here we want to capture detailed error information in a text file or 
    'sql server
Finally
    If Not _SQLCommand Is Nothing Then
        _SQLCommand.Dispose()
    End If
    If Not _Conn Is Nothing Then
        _EConn.Close()
    End If
End Try
4

3 回答 3

0

log4net 可以很好地将错误记录到文本文件,或者 syslog 或 AdoNetAppender 可以记录到 SQL Server 数据库。
http://logging.apache.org/log4net/release/config-examples.html

于 2012-11-04T05:10:00.987 回答
0

你可以尝试这样的事情: -

Try
 'do some stuff
 Catch ex As Exception
    errorArg = "Error details and description." 
    errorHandle(errorArg, ex)
  Sub errorHandle(ByVal errorArg As String, ByVal ex As System.Exception)
    Dim errorFile As String = "C:\Foldername\errorfile.txt"
    Dim errorWrite As New IO.StreamWriter(errorFile, True)
    Dim machname As String = System.Environment.MachineName.ToString
    Dim close As DialogResult = MessageBox.Show(errorArg & vbCrLf & "Message", "System    Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    errorWrite.Write("*** ERROR on " & curDate & " @ " & machname & vbCrLf & errorArg & vbCrLf &   ex.ToString & vbCrLf)
    errorWrite.Close()
    If close = DialogResult.OK Then End
  End Sub
于 2012-11-04T05:12:36.100 回答
0

试用ELMAH非常适合错误记录。

ELMAH NuGet 包也可用。

此外,配置自定义错误页面(在 web.config 中)以避免错误黄页

<configuration>
   <system.web>
      <customErrors defaultRedirect="GenericError.htm" mode="RemoteOnly">
         <error statusCode="500" redirect="InternalError.htm"/>
      </customErrors>
   </system.web>
</configuration>

ELMAH(错误记录模块和处理程序)是一个完全可插拔的应用程序范围的错误记录工具。它可以动态添加到正在运行的 ASP.NET Web 应用程序,甚至是一台机器上的所有 ASP.NET Web 应用程序,无需重新编译或重新部署。

将 ELMAH 放入正在运行的 Web 应用程序并进行适当配置后,您无需更改任何一行代码即可获得以下功能:

  • 记录几乎所有未处理的异常。
  • 用于远程查看重新编码异常的整个日志的网页。
  • 用于远程查看任何记录的异常的完整详细信息的网页,包括彩色堆栈跟踪。
  • 在许多情况下,即使关闭了 customErrors 模式,您也可以查看 ASP.NET 为给定异常生成的原始黄屏死机。
  • 每个错误发生时的电子邮件通知。
  • 来自日志的最后 15 个错误的 RSS 提要。
于 2012-11-04T05:18:03.293 回答