43 lines
683 B
Go
43 lines
683 B
Go
package slogging
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"golang.org/x/exp/slog"
|
|
)
|
|
|
|
type Logger struct {
|
|
*slog.Logger
|
|
}
|
|
|
|
var logger *Logger
|
|
|
|
func GetLogger() *Logger {
|
|
return logger
|
|
}
|
|
|
|
func Init(jsonHandler bool) error {
|
|
if jsonHandler {
|
|
logger = &Logger{slog.New(slog.NewJSONHandler(os.Stderr))}
|
|
} else {
|
|
logger = &Logger{slog.New(slog.NewTextHandler(os.Stderr))}
|
|
}
|
|
|
|
logger.Info("slog logger initialised")
|
|
|
|
return nil
|
|
}
|
|
|
|
func (l *Logger) Infof(msg string, args ...any) {
|
|
l.Info(fmt.Sprintf(msg, args...))
|
|
}
|
|
|
|
func (l *Logger) Warnf(msg string, args ...any) {
|
|
l.Warn(fmt.Sprintf(msg, args...))
|
|
}
|
|
|
|
func (l *Logger) Errorf(msg string, args ...any) {
|
|
l.Error(fmt.Sprintf(msg, args...))
|
|
}
|