Extend log_ext with better max level handling and console output
This commit is contained in:
parent
b11846a3af
commit
5e8359cdc1
1 changed files with 27 additions and 7 deletions
|
@ -35,8 +35,10 @@ CompilerEndIf
|
|||
|
||||
DeclareModule lhs_log_ext
|
||||
Global.s App_Name = "lhs_ext_Logger"
|
||||
#Debug = 1
|
||||
#NoDebug = 0
|
||||
#Debug = #True
|
||||
#NoDebug = #False
|
||||
#Console = #True
|
||||
#NoConsole = #False
|
||||
|
||||
Structure LogThreads
|
||||
Logger_UUID.s
|
||||
|
@ -54,6 +56,7 @@ DeclareModule lhs_log_ext
|
|||
LogFileDateFormat.s
|
||||
LogDateFormat.s
|
||||
debugger.i
|
||||
console.i
|
||||
List Messages.s()
|
||||
EndStructure
|
||||
|
||||
|
@ -61,10 +64,13 @@ DeclareModule lhs_log_ext
|
|||
Global NewList LoggerUUID.s()
|
||||
|
||||
Enumeration LogLevel
|
||||
#NoLog
|
||||
#Error
|
||||
#Warning
|
||||
#Info
|
||||
#Warning
|
||||
#Error
|
||||
#Debug
|
||||
EndEnumeration
|
||||
|
||||
Declare IsCreated(UUID.s)
|
||||
Declare SetLogFile(UUID.s, LogFileName.s)
|
||||
Declare SetMaxSize(UUID.s, Megabyte.i)
|
||||
|
@ -83,6 +89,7 @@ Module lhs_log_ext
|
|||
XIncludeFile "lhs_uuid.pbi"
|
||||
|
||||
Global CreateLoggerMutex.i = CreateMutex()
|
||||
Global ConsoleMutex.i = CreateMutex()
|
||||
|
||||
Procedure.s Create(Name.s)
|
||||
Define.s InternalUUID
|
||||
|
@ -102,6 +109,7 @@ Module lhs_log_ext
|
|||
Logger(InternalUUID)\LogLevel.i = #Info
|
||||
Logger(InternalUUID)\LogFileDateFormat.s = "%yyyy_%mm_%dd_%hh_%ii_%ss"
|
||||
Logger(InternalUUID)\LogDateFormat.s = "%yyyy.%mm.%dd %hh:%ii:%ss"
|
||||
Logger(InternalUUID)\console = #NoConsole
|
||||
UnlockMutex(CreateLoggerMutex)
|
||||
ProcedureReturn InternalUUID
|
||||
EndIf
|
||||
|
@ -271,7 +279,15 @@ Module lhs_log_ext
|
|||
|
||||
EndProcedure
|
||||
|
||||
Procedure Out(UUID.s, ToLog.s, debugger.i = #NoDebug)
|
||||
Procedure OutPutConsole(ToLog.s)
|
||||
;Hardlock ConsoleOutput
|
||||
If LockMutex(ConsoleMutex)
|
||||
PrintN(ToLog)
|
||||
UnlockMutex(ConsoleMutex)
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
||||
Procedure Out(UUID.s, ToLog.s)
|
||||
If IsCreated(UUID)
|
||||
LockMutex(Logger(UUID)\Mutex)
|
||||
LastElement(Logger(UUID)\Messages())
|
||||
|
@ -280,14 +296,17 @@ Module lhs_log_ext
|
|||
If Logger(UUID)\debugger = #Debug
|
||||
Debug ToLog
|
||||
EndIf
|
||||
If Logger(UUID)\console = #Console
|
||||
OutPutConsole(ToLog)
|
||||
EndIf
|
||||
UnlockMutex(Logger(UUID)\Mutex)
|
||||
SignalSemaphore(Logger(UUID)\WorkerSemaphore)
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
||||
Procedure OutL(UUID.s, LogType.i, ToLog.s, debugger.i = #NoDebug)
|
||||
Procedure OutL(UUID.s, LogType.i, ToLog.s)
|
||||
If IsCreated(UUID)
|
||||
If LogType >= LogLevel
|
||||
If LogType <= Logger(UUID)\LogLevel
|
||||
Select LogType
|
||||
Case #Info
|
||||
ToLog = "Info: " + ToLog
|
||||
|
@ -299,6 +318,7 @@ Module lhs_log_ext
|
|||
ToLog = "Error: " + ToLog
|
||||
EndSelect
|
||||
Out(UUID, ToLog, debugger)
|
||||
ProcedureReturn #True
|
||||
EndIf
|
||||
EndIf
|
||||
EndProcedure
|
||||
|
|
Loading…
Reference in a new issue