VB.net
- Public Class Logger
- Private Shared m_Path As String = "C:\log"
- Private Shared buffer As New Queue(Of String())()
- Private Shared lock As New Object()
- Public Shared Property Path() As String
- Get
- Return m_Path
- End Get
- Set(ByVal value As String)
- m_Path = value
- End Set
- End Property
- Private Shared Sub EnsurePath()
- Try
- If Not System.IO.Directory.Exists(Logger.m_Path) Then
- System.IO.Directory.CreateDirectory(Logger.m_Path)
- End If
- Catch ex As Exception
- End Try
- End Sub
- Public Shared Sub LogError(ByVal message As String)
- Log("Error", message)
- End Sub
- Public Shared Sub Log(ByVal message As String)
- Log("Message", message)
- End Sub
- Public Shared Sub Log(ByVal prefix As String, ByVal message As String)
- Try
- EnsurePath()
- SyncLock lock
- buffer.Enqueue(New String() {prefix, message})
- While buffer.Count > 0
- Dim arr() As String = buffer.Peek()
- Dim p As String = arr(0)
- Dim c As String = arr(1)
- Dim filename As String = String.Format("{0}\{1}_{2}.log", m_Path, p, Now.ToString("yyyyMMdd"))
- Dim content As String = String.Format("{0}{1}{2}{3}", Now.ToString("HH:mm:ss.fff"), vbTab, c, vbCrLf)
- buffer.Dequeue()
- End While
- End SyncLock
- Catch ex As Exception
- End Try
- End Sub
- End Class
沒有留言:
張貼留言