错误日志说明哪个用户/计算机导致错误

时间:2016-07-15 10:21:57

标签: vb.net error-logging error-log

在我的vb.net项目中,我已经实现了它,以便在Try...Catch语句中找到异常时创建错误日志。目前,错误日志指出错误的日期/时间,错误发生的形式和行以及错误的类型。我希望它显示的最后一件事是登录到计算机上的错误发生的用户(例如,如果它是使用它的学校网络,它可以说是已登录的学生/教师)。

这是我的代码:

   Public Shared Sub errorLog(ByVal errormessage, ByVal errorsource)

    Dim strFile As String = "errorLog-" & Today.ToString("dd-MM-yyyy") & ".txt"
    Dim fileExists As Boolean = File.Exists(strFile)
    Using sw As New StreamWriter(File.Open(strFile, FileMode.Append))
        sw.WriteLine( _
            IIf(fileExists, _
                 DateTime.Now & " " & errormessage & vbNewLine & errorsource & vbNewLine, _
            "Error log date: " & Today.ToString("dd-MM-yyyy") & vbNewLine & DateTime.Now & " " & errormessage & vbNewLine & errorsource & vbNewLine))
    End Using
End Sub

当前错误日志的示例(表名称不正确):

  

错误日志日期:15-07-2016   15/07/2016 11:19:31无效的对象名称't​​abe_one'。      在System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)      在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,Object& executeResult)      在System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)      在System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior,Object& executeResult)      在System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior,String method)      在System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior行为)      在System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)      在System.Data.Common.DbDataAdapter.FillInternal(DataSet数据集,DataTable [] datatables,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令,CommandBehavior行为)      在System.Data.Common.DbDataAdapter.Fill(DataTable [] dataTables,Int32 startRecord,Int32 maxRecords,IDbCommand命令,CommandBehavior行为)      在System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)      在C:\ Project Location \ Project Folder \ Project Subfolder \ formName.vb中的SQLServerApplication.frmViewDtb.getPeople():行号

1 个答案:

答案 0 :(得分:2)

您可以使用Environment.UserName和Environment.Machine名称来获取此信息。