kubelatte-ce
Форк от sbertech/kubelatte-ce
89 строк · 3.0 Кб
1package logger2
3import (4"context"5"encoding/json"6"fmt"7"gitverse.ru/synapse/kubelatte/pkg/observability/logger/lib"8"go.uber.org/zap"9"go.uber.org/zap/zapcore"10)
11
12type Logger struct{}13
14type loggerKey string15
16var LoggerKey = loggerKey("loggerFromContext")17
18func FromContext(ctx context.Context) Logger {19log, ok := ctx.Value(LoggerKey).(Logger)20if ok {21return log22}23
24return Logger{}25}
26
27func (l Logger) DoLog(logsOutputOptions lib.LogOptions, keysAndValues ...interface{}) {28data, _ := json.Marshal(keysAndValues)29if logsOutputOptions.Out == lib.StdOut || logsOutputOptions.Out == lib.MultiOut {30lib.ZapLogger.Log(logsOutputOptions.LvlConsole, string(data))31}32}
33
34func (l Logger) Fatal(keysAndValues ...interface{}) {35l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.FatalLevel}, keysAndValues...)36}
37
38func (l Logger) Fatalf(message string, keysAndValues ...interface{}) {39l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.FatalLevel}, fmt.Sprintf(message, keysAndValues...))40}
41
42func (l Logger) Error(keysAndValues ...interface{}) {43l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.ErrorLevel}, keysAndValues...)44}
45
46func (l Logger) Errorf(message string, keysAndValues ...interface{}) {47l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.ErrorLevel}, fmt.Sprintf(message, keysAndValues...))48}
49
50func (l Logger) Warn(keysAndValues ...interface{}) {51l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.WarnLevel}, keysAndValues...)52}
53
54func (l Logger) Warnf(message string, keysAndValues ...interface{}) {55l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.WarnLevel}, fmt.Sprintf(message, keysAndValues...))56}
57
58func (l Logger) Info(keysAndValues ...interface{}) {59l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.InfoLevel}, keysAndValues...)60}
61
62func (l Logger) Infof(message string, keysAndValues ...interface{}) {63l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.InfoLevel}, fmt.Sprintf(message, keysAndValues...))64}
65
66func (l Logger) Debug(keysAndValues ...interface{}) {67l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.DebugLevel}, keysAndValues...)68}
69
70func (l Logger) Debugf(message string, keysAndValues ...interface{}) {71l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.DebugLevel}, fmt.Sprintf(message, keysAndValues...))72}
73
74func (l Logger) PersistError(keysAndValues ...interface{}) {75l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: zap.ErrorLevel},76keysAndValues...)77}
78
79func (l Logger) PersistInfo(keysAndValues ...interface{}) {80l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: zap.InfoLevel}, keysAndValues...)81}
82
83func (l Logger) PersistDebug(keysAndValues ...interface{}) {84l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: zap.DebugLevel}, keysAndValues...)85}
86
87func (l Logger) PersistLog(level zapcore.Level, keysAndValues ...interface{}) {88l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: level}, keysAndValues...)89}
90