Hallo liebes Forum!
Ich schreibe ebend ein Logger in VB.Net der wie folgt aussieht
(Code zur Veranschaulichung, besseres Verständnis)
Bei "Private Function GetFormattedLogMsg" muss ich noch nach dem Return den Aufbau verändern.
Aber warum ich jetzt nach Lösung frage ist folgende Zeile:
Denn dort wird als Fehler angegeben das die Anweisung in einem Namespace ungültig ist.
Ich glaube ich übersehe etwas in dem Code.
Bitte um Hilfe.
Danke!
Ich schreibe ebend ein Logger in VB.Net der wie folgt aussieht
(Code zur Veranschaulichung, besseres Verständnis)
Quellcode
- Imports System.IO
- Imports System.Text
- Public Class Logger
- Private Shared lgr As Logger
- Private Shared logSettings As LoggerSettings
- Private Shared logFilePath As String
- Private Shared logFileLevel As LogLevel
- Private Shared locker As New Object()
- Public Shared Function getLogger(ByVal logFilePath As String, ByVal logFileLevel As LogLevel) As Logger
- If lgr Is Nothing Then
- SyncLock locker
- If lgr Is Nothing Then
- logSettings = New LoggerSettings(logFileLevel, logFilePath)
- lgr = New Logger()
- End If
- End SyncLock
- End If
- Return lgr
- End Function
- Public Sub debug(ByVal message As String)
- If logSettings.LogFileLevel <= LogLevel.LDEBUG Then
- log(LogLevel.LDEBUG, message)
- End If
- End Sub
- Public Sub info(ByVal message As String)
- If logSettings.LogFileLevel <= LogLevel.LINFO Then
- log(LogLevel.LINFO, message)
- End If
- End Sub
- Public Sub warning(ByVal message As String)
- If logSettings.LogFileLevel <= LogLevel.LWARNING Then
- log(LogLevel.LWARNING, message)
- End If
- End Sub
- Public Sub err(ByVal message As String)
- If logSettings.LogFileLevel <= LogLevel.LError Then
- log(LogLevel.LError, message)
- End If
- End Sub
- Public Sub fatal(ByVal message As String)
- If logSettings.LogFileLevel <= LogLevel.LFATAL Then
- log(LogLevel.LFATAL, message)
- End If
- End Sub
- Private Sub log(ByVal logLevel As LogLevel, ByVal message As String)
- Dim logFileDirectory As String = Path.GetDirectoryName(logSettings.LogFilePath)
- If Not Directory.Exists(logFileDirectory) Then
- Directory.CreateDirectory(logFileDirectory)
- End If
- Dim logText As String = String.Format("[{0}] [{1}] {2}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), logLevel.ToString(), message)
- Using sw As New StreamWriter(logSettings.LogFilePath, True)
- sw.WriteLine(logText)
- End Using
- End Sub
- End Class
- Public Class LoggerSettings
- Public Property LogFileLevel As LogLevel
- Public Property LogFilePath As String
- Public Sub New(ByVal logFileLevel As LogLevel, ByVal logFilePath As String)
- Me.LogFileLevel = logFileLevel
- Me.LogFilePath = logFilePath
- End Sub
- End Class
- Private Function GetFormattedLogMsg(ByVal logLevel As String, ByVal msg As String) As String
- Dim time As DateTime = DateTime.Now
- Return "[" & time.ToString("yyyy.MM.dd-HH:mm:ss") & "] [" & logLevel & "] <" & logLevel & ">: " & msg
- End Function
- Public Enum LogLevel
- LDEBUG
- LINFO
- LWARNING
- LError
- LFATAL
- End Enum
Bei "Private Function GetFormattedLogMsg" muss ich noch nach dem Return den Aufbau verändern.
Aber warum ich jetzt nach Lösung frage ist folgende Zeile:
Denn dort wird als Fehler angegeben das die Anweisung in einem Namespace ungültig ist.
Ich glaube ich übersehe etwas in dem Code.
Bitte um Hilfe.
Danke!
