mirror of
https://github.com/databasus/databasus.git
synced 2026-04-06 00:32:03 +02:00
48 lines
840 B
Go
48 lines
840 B
Go
package logger
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
loggerInstance *slog.Logger
|
|
once sync.Once
|
|
)
|
|
|
|
func Init(isDebug bool) {
|
|
level := slog.LevelInfo
|
|
if isDebug {
|
|
level = slog.LevelDebug
|
|
}
|
|
|
|
once.Do(func() {
|
|
loggerInstance = slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
|
|
Level: level,
|
|
ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr {
|
|
if a.Key == slog.TimeKey {
|
|
a.Value = slog.StringValue(time.Now().Format("2006/01/02 15:04:05"))
|
|
}
|
|
if a.Key == slog.LevelKey {
|
|
return slog.Attr{}
|
|
}
|
|
|
|
return a
|
|
},
|
|
}))
|
|
|
|
loggerInstance.Info("Text structured logger initialized")
|
|
})
|
|
}
|
|
|
|
// GetLogger returns a singleton slog.Logger that logs to the console
|
|
func GetLogger() *slog.Logger {
|
|
if loggerInstance == nil {
|
|
Init(false)
|
|
}
|
|
|
|
return loggerInstance
|
|
}
|