kubelatte-ce

Форк
2
Форк от sbertech/kubelatte-ce
89 строк · 3.0 Кб
1
package logger
2

3
import (
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

12
type Logger struct{}
13

14
type loggerKey string
15

16
var LoggerKey = loggerKey("loggerFromContext")
17

18
func FromContext(ctx context.Context) Logger {
19
	log, ok := ctx.Value(LoggerKey).(Logger)
20
	if ok {
21
		return log
22
	}
23

24
	return Logger{}
25
}
26

27
func (l Logger) DoLog(logsOutputOptions lib.LogOptions, keysAndValues ...interface{}) {
28
	data, _ := json.Marshal(keysAndValues)
29
	if logsOutputOptions.Out == lib.StdOut || logsOutputOptions.Out == lib.MultiOut {
30
		lib.ZapLogger.Log(logsOutputOptions.LvlConsole, string(data))
31
	}
32
}
33

34
func (l Logger) Fatal(keysAndValues ...interface{}) {
35
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.FatalLevel}, keysAndValues...)
36
}
37

38
func (l Logger) Fatalf(message string, keysAndValues ...interface{}) {
39
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.FatalLevel}, fmt.Sprintf(message, keysAndValues...))
40
}
41

42
func (l Logger) Error(keysAndValues ...interface{}) {
43
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.ErrorLevel}, keysAndValues...)
44
}
45

46
func (l Logger) Errorf(message string, keysAndValues ...interface{}) {
47
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.ErrorLevel}, fmt.Sprintf(message, keysAndValues...))
48
}
49

50
func (l Logger) Warn(keysAndValues ...interface{}) {
51
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.WarnLevel}, keysAndValues...)
52
}
53

54
func (l Logger) Warnf(message string, keysAndValues ...interface{}) {
55
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.WarnLevel}, fmt.Sprintf(message, keysAndValues...))
56
}
57

58
func (l Logger) Info(keysAndValues ...interface{}) {
59
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.InfoLevel}, keysAndValues...)
60
}
61

62
func (l Logger) Infof(message string, keysAndValues ...interface{}) {
63
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.InfoLevel}, fmt.Sprintf(message, keysAndValues...))
64
}
65

66
func (l Logger) Debug(keysAndValues ...interface{}) {
67
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.DebugLevel}, keysAndValues...)
68
}
69

70
func (l Logger) Debugf(message string, keysAndValues ...interface{}) {
71
	l.DoLog(lib.LogOptions{Out: lib.StdOut, LvlConsole: zap.DebugLevel}, fmt.Sprintf(message, keysAndValues...))
72
}
73

74
func (l Logger) PersistError(keysAndValues ...interface{}) {
75
	l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: zap.ErrorLevel},
76
		keysAndValues...)
77
}
78

79
func (l Logger) PersistInfo(keysAndValues ...interface{}) {
80
	l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: zap.InfoLevel}, keysAndValues...)
81
}
82

83
func (l Logger) PersistDebug(keysAndValues ...interface{}) {
84
	l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: zap.DebugLevel}, keysAndValues...)
85
}
86

87
func (l Logger) PersistLog(level zapcore.Level, keysAndValues ...interface{}) {
88
	l.DoLog(lib.LogOptions{Out: lib.MultiOut, LvlFluentBit: zap.InfoLevel, LvlConsole: level}, keysAndValues...)
89
}
90

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.