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