From 5b57c0a56558b844cdde2f94b665f7f5008b4056 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 5 Feb 2025 11:06:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pkg/github.com/name5566/leaf/log/log.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/server/pkg/github.com/name5566/leaf/log/log.go b/src/server/pkg/github.com/name5566/leaf/log/log.go index 8007ffa1..44f7db4b 100644 --- a/src/server/pkg/github.com/name5566/leaf/log/log.go +++ b/src/server/pkg/github.com/name5566/leaf/log/log.go @@ -7,6 +7,7 @@ import ( "os" "path" "strings" + "sync" "time" ) @@ -26,6 +27,7 @@ const ( ) type Logger struct { + lock sync.Mutex level int baseLogger *log.Logger baseFile *os.File @@ -203,30 +205,43 @@ func (logger *Logger) Fatal(format string, a ...interface{}) { } var gLogger, _ = New("debug", "", log.LstdFlags) +var gloggerLock sync.Mutex // It's dangerous to call the method on logging func Export(logger *Logger) { if logger != nil { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger = logger } } func Debug(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(debugLevel, printDebugLevel, format, a...) } func Release(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(releaseLevel, printReleaseLevel, format, a...) } func Error(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(errorLevel, printErrorLevel, format, a...) } func Fatal(format string, a ...interface{}) { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.doPrintf(fatalLevel, printFatalLevel, format, a...) } func Close() { + gloggerLock.Lock() + defer gloggerLock.Unlock() gLogger.Close() }