在我的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无效的对象名称'tabe_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():行号
答案 0 :(得分:2)
您可以使用Environment.UserName和Environment.Machine名称来获取此信息。