Imports System.IO ''' ''' 日志类 ''' Public NotInheritable Class CsDataLog ''' ''' 日志类型 ''' Public Enum LogType ''' 堆栈跟踪信息 Trace ''' 警告信息 Warning ''' 错误信息应该包含对象名、发生错误点所在的方法名称、具体错误信息 [Error] ''' 与数据库相关的信息 SQL End Enum ''' 日志文件所在路径 Private Shared _logPath = String.Empty ''' 日志前缀说明信息 Private Shared _logFilePrefix = String.Empty ''' ''' 保存日志的文件夹 ''' Public Shared Property LogPath As String Get If Equals(_logPath, String.Empty) Then _logPath = Application.StartupPath End If Return _logPath End Get Set(ByVal value As String) _logPath = value End Set End Property ''' ''' 日志文件前缀 ''' Public Shared Property LogFilePrefix As String Get Return _logFilePrefix End Get Set(ByVal value As String) _logFilePrefix = value End Set End Property ''' ''' ''' ''' Public Shared Sub WriteErrorLog(ex As Exception) Dim msg As String = String.Empty msg &= $"ErrorMessage:{ex.Message}{vbNewLine}" msg &= $"ErrorTime:{Now}{vbNewLine}" msg &= $"ErrorSource:{ex.Source}{vbNewLine}" msg &= $"ErrorType:{ex.GetType}{vbNewLine}" msg &= $"ErrorTargetSite:{ex.TargetSite}{vbNewLine}" msg &= $"ErrorStackTrace:{ex.StackTrace}{vbNewLine}" WriteLog(LogType.Error, msg) End Sub ''' ''' 将信息入到日志 ''' ''' 日志类型 ''' 日志内容 Public Shared Sub WriteLog(ByVal logType As String, ByVal msg As String) Dim sw As StreamWriter = Nothing Try '同一天同一类日志以追加形式保存 sw = File.AppendText($"{LogPath}{Path.DirectorySeparatorChar}{LogFilePrefix}_{Date.Now:yyyyMMdd}.Log") sw.WriteLine(logType & "#" & Date.Now.ToString("yyyy-MM-dd HH:mm:ss: ") & msg) Catch Finally sw.Close() End Try End Sub ''' ''' 写日志 ''' Public Shared Sub WriteLog(type As LogType, ByVal msg As String) WriteLog(type.ToString(), msg) End Sub End Class