From 2703a687af5121ac04687dbe9a3d3a72debda52f Mon Sep 17 00:00:00 2001 From: calvin Date: Tue, 20 Jun 2023 00:48:10 +0800 Subject: [PATCH] logger instance adding --- logger/logger.go | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 logger/logger.go diff --git a/logger/logger.go b/logger/logger.go new file mode 100644 index 0000000..1421077 --- /dev/null +++ b/logger/logger.go @@ -0,0 +1,74 @@ +package logger + +import ( + "fmt" + "github.com/phuhao00/spoor" + "log" + "sync" +) + +var ( + sp *spoor.Spoor + onceInitLogger sync.Once +) + +func GetLogger() *spoor.Spoor { + return sp +} + +type LoggingSetting struct { + Dir string + Level int + Prefix string + WriterOption spoor.Option +} + +func SetLogging(setting *LoggingSetting) { + onceInitLogger.Do(func() { + var opt spoor.Option + if setting.WriterOption == nil { + fileWriter := spoor.NewFileWriter(setting.Dir, 0, 0, 0) + opt = spoor.WithFileWriter(fileWriter) + } else { + opt = setting.WriterOption + } + l := spoor.NewSpoor(spoor.Level(setting.Level), setting.Prefix, log.Ldate|log.Ltime|log.Lmicroseconds|log.Llongfile, opt) + sp = l + }) +} + +// Debug Log line format: [IWEF]mmdd hh:mm:sLogger.uuuuuu threadid file:line] msg +func Debug(f string, args ...interface{}) { + if sp.CheckLevel(spoor.DEBUG) { + return + } + sp.Output(2, fmt.Sprintf(spoor.DEBUG.String()+" "+f, args...)) +} + +func Error(f string, args ...interface{}) { + if sp.CheckLevel(spoor.ERROR) { + return + } + sp.Output(2, fmt.Sprintf(spoor.ERROR.String()+" "+f, args...)) +} + +func Info(f string, args ...interface{}) { + if sp.CheckLevel(spoor.INFO) { + return + } + sp.Output(2, fmt.Sprintf(spoor.INFO.String()+" "+f, args...)) +} + +func Warn(f string, args ...interface{}) { + if sp.CheckLevel(spoor.WARN) { + return + } + sp.Output(2, fmt.Sprintf(spoor.WARN.String()+" "+f, args...)) +} + +func Fatal(f string, args ...interface{}) { + if sp.CheckLevel(spoor.FATAL) { + return + } + sp.Output(2, fmt.Sprintf(spoor.FATAL.String()+" "+f, args...)) +}