From d34a4ed900a0d93960e126eecdd33c6b0a9d7df3 Mon Sep 17 00:00:00 2001 From: Ground0 Date: Fri, 21 May 2021 08:04:40 +0200 Subject: [PATCH] extend Logger --- SYS/lhs_log.pbi | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/SYS/lhs_log.pbi b/SYS/lhs_log.pbi index 6ebab4f..5f7e276 100644 --- a/SYS/lhs_log.pbi +++ b/SYS/lhs_log.pbi @@ -2,6 +2,10 @@ ;* ;* lhs_log.pbi ;* +;* Single Logthread logger. +;* +;* For multiple logthread use lhs_log_ext.pbi +;* ;* (c) by René Linder ;* (c) by Linder Hard- und Software ;* @@ -12,10 +16,12 @@ ;* lhs_log::App_Name = "Test App" ;* lhs_log::SetLogFile("test_app.log")) ;* lhs_log::SetMaxSize(32) +;* lhs_log::SetLogLevel(lhs_log::#Error) ;* lhs_log::SetLogDateFormat("%yyyy.%mm.%dd %hh:%ii:%ss") ;* lhs_log::SetLogFileDateFormat("%yyyy_%mm_%dd_%hh_%ii_%ss") ;* lhs_log::Init() ;* lhs_log::Out("Log started.", #lhs_log::#Debug) +;* lhs_log::OutL(lhs_log::#Info, "Info Level") ;* lhs_log::Close() ;} CompilerIf #PB_Compiler_Thread <> 1 @@ -28,12 +34,20 @@ DeclareModule lhs_log #Debug = 1 #NoDebug = 0 + Enumeration LogLevel + #Info + #Warning + #Error + EndEnumeration + Declare SetLogFile(LogFileName.s) Declare SetMaxSize(Megabyte.i) + Declare SetLogLevel(Level.i) Declare SetLogFileDateFormat(DateFormat.s) Declare SetLogDateFormat(DateFormat.s) Declare Init() Declare Out(ToLog.s, debugger.i = #NoDebug) + Declare OutL(LogType.i, ToLog.s, debugger.i = #NoDebug) Declare Close() EndDeclareModule @@ -54,6 +68,7 @@ Module lhs_log Global ExitSemaphore = CreateSemaphore() Global MaxSize.q = 32 * 1024 * 1024 Global LastSize.q = 0 + Global LogLevel.i = #Info Global LogFileDateFormat.s = "%yyyy_%mm_%dd_%hh_%ii_%ss" Global LogDateFormat.s = "%yyyy.%mm.%dd %hh:%ii:%ss" Global NewList Messages.s() @@ -66,6 +81,19 @@ Module lhs_log EndIf EndProcedure + Procedure SetLogLevel(Level.i) + Select Level + Case #Info + LogLevel = #Info + Case #Warning + LogLevel = #Warning + Case #Error + LogLevel = #Error + Default + LogLevel = #Error + EndSelect + EndProcedure + Procedure SetLogFile(LogFileName.s) Protected.i TestFile_ID @@ -168,6 +196,22 @@ Module lhs_log SignalSemaphore(Semaphore) EndProcedure + Procedure OutL(LogType.i, ToLog.s, debugger.i = #NoDebug) + If LogType >= LogLevel + Select LogType + Case #Info + ToLog = "Info: " + ToLog + Case #Warning + ToLog = "Warning: " + ToLog + Case #Error + ToLog = "Error: " + ToLog + Default + ToLog = "Error: " + ToLog + EndSelect + Out(ToLog, debugger) + EndIf + EndProcedure + Procedure Close() Exit=1 SignalSemaphore(Semaphore)