Files
softplayer-backend/internal/tools/logger/logger.go
2026-04-26 21:06:33 +02:00

46 lines
1008 B
Go

package logger
import (
"context"
"github.com/go-logr/logr"
"github.com/go-logr/zapr"
"github.com/mattn/go-colorable"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
func SetupLogger(levelTxt string) *zap.Logger {
level, err := zapcore.ParseLevel(levelTxt)
if err != nil {
level = zapcore.ErrorLevel
}
aa := zap.NewDevelopmentEncoderConfig()
aa.EncodeLevel = zapcore.CapitalColorLevelEncoder
aa.TimeKey = ""
bb := zap.New(zapcore.NewCore(
zapcore.NewConsoleEncoder(aa),
zapcore.AddSync(colorable.NewColorableStdout()),
level,
))
return bb
}
func NewLogger(ctx context.Context, levelTxt string) context.Context {
log := zapr.NewLogger(SetupLogger(levelTxt))
ctx = logr.NewContext(ctx, log)
return ctx
}
func FromContext(ctx context.Context) logr.Logger {
log, err := logr.FromContext(ctx)
if err == nil {
return log
}
return zapr.NewLogger(zap.NewExample())
}
func ToContext(ctx context.Context, logger logr.Logger) context.Context {
return logr.NewContext(ctx, logger)
}