Init commit
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
This commit is contained in:
45
internal/tools/logger/logger.go
Normal file
45
internal/tools/logger/logger.go
Normal file
@@ -0,0 +1,45 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user