优化日志

This commit is contained in:
hahwu 2025-02-05 11:06:20 +08:00
parent 91ab7b1861
commit 7e96008168

View File

@ -7,6 +7,7 @@ import (
"os" "os"
"path" "path"
"strings" "strings"
"sync"
"time" "time"
) )
@ -26,6 +27,7 @@ const (
) )
type Logger struct { type Logger struct {
lock sync.Mutex
level int level int
baseLogger *log.Logger baseLogger *log.Logger
baseFile *os.File baseFile *os.File
@ -203,30 +205,43 @@ func (logger *Logger) Fatal(format string, a ...interface{}) {
} }
var gLogger, _ = New("debug", "", log.LstdFlags) var gLogger, _ = New("debug", "", log.LstdFlags)
var gloggerLock sync.Mutex
// It's dangerous to call the method on logging // It's dangerous to call the method on logging
func Export(logger *Logger) { func Export(logger *Logger) {
if logger != nil { if logger != nil {
gloggerLock.Lock()
defer gloggerLock.Unlock()
gLogger = logger gLogger = logger
} }
} }
func Debug(format string, a ...interface{}) { func Debug(format string, a ...interface{}) {
gloggerLock.Lock()
defer gloggerLock.Unlock()
gLogger.doPrintf(debugLevel, printDebugLevel, format, a...) gLogger.doPrintf(debugLevel, printDebugLevel, format, a...)
} }
func Release(format string, a ...interface{}) { func Release(format string, a ...interface{}) {
gloggerLock.Lock()
defer gloggerLock.Unlock()
gLogger.doPrintf(releaseLevel, printReleaseLevel, format, a...) gLogger.doPrintf(releaseLevel, printReleaseLevel, format, a...)
} }
func Error(format string, a ...interface{}) { func Error(format string, a ...interface{}) {
gloggerLock.Lock()
defer gloggerLock.Unlock()
gLogger.doPrintf(errorLevel, printErrorLevel, format, a...) gLogger.doPrintf(errorLevel, printErrorLevel, format, a...)
} }
func Fatal(format string, a ...interface{}) { func Fatal(format string, a ...interface{}) {
gloggerLock.Lock()
defer gloggerLock.Unlock()
gLogger.doPrintf(fatalLevel, printFatalLevel, format, a...) gLogger.doPrintf(fatalLevel, printFatalLevel, format, a...)
} }
func Close() { func Close() {
gloggerLock.Lock()
defer gloggerLock.Unlock()
gLogger.Close() gLogger.Close()
} }