From c38e1e0cfe9fd95f1cd2ed5f6c6cb10bf820b9b6 Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Tue, 23 May 2023 02:43:15 +0330 Subject: a lot of improvement --- logger/logger.go | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) (limited to 'logger') diff --git a/logger/logger.go b/logger/logger.go index 405f2ec7..f5b0a878 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -2,17 +2,28 @@ package logger import ( "os" + "sync" "github.com/op/go-logging" ) -var logger *logging.Logger +var ( + logger *logging.Logger + mu sync.Mutex +) func init() { InitLogger(logging.INFO) } func InitLogger(level logging.Level) { + mu.Lock() + defer mu.Unlock() + + if logger != nil { + return + } + format := logging.MustStringFormatter( `%{time:2006/01/02 15:04:05} %{level} - %{message}`, ) @@ -21,39 +32,55 @@ func InitLogger(level logging.Level) { backendFormatter := logging.NewBackendFormatter(backend, format) backendLeveled := logging.AddModuleLevel(backendFormatter) backendLeveled.SetLevel(level, "") - newLogger.SetBackend(backendLeveled) + newLogger.SetBackend(logging.MultiLogger(backendLeveled)) logger = newLogger } func Debug(args ...interface{}) { - logger.Debug(args...) + if logger != nil { + logger.Debug(args...) + } } func Debugf(format string, args ...interface{}) { - logger.Debugf(format, args...) + if logger != nil { + logger.Debugf(format, args...) + } } func Info(args ...interface{}) { - logger.Info(args...) + if logger != nil { + logger.Info(args...) + } } func Infof(format string, args ...interface{}) { - logger.Infof(format, args...) + if logger != nil { + logger.Infof(format, args...) + } } func Warning(args ...interface{}) { - logger.Warning(args...) + if logger != nil { + logger.Warning(args...) + } } func Warningf(format string, args ...interface{}) { - logger.Warningf(format, args...) + if logger != nil { + logger.Warningf(format, args...) + } } func Error(args ...interface{}) { - logger.Error(args...) + if logger != nil { + logger.Error(args...) + } } func Errorf(format string, args ...interface{}) { - logger.Errorf(format, args...) + if logger != nil { + logger.Errorf(format, args...) + } } -- cgit v1.2.3