gohome

Форк
0
/
logger.go 
44 строки · 831.0 Байт
1
package logger
2

3
import (
4
	"go.uber.org/zap"
5
	"go.uber.org/zap/zapcore"
6
)
7

8
type Config struct {
9
	Level    string
10
	Encoding string
11
	Tags     []string
12
	Colored  bool
13
}
14

15
type Logger = zap.Logger
16

17
func New(config Config) *Logger {
18
	cfg := zap.NewProductionConfig()
19
	var lvl zapcore.Level
20
	err := lvl.UnmarshalText([]byte(config.Level))
21
	if err != nil {
22
		lvl = zap.InfoLevel
23
	}
24

25
	cfg.Level.SetLevel(lvl)
26
	cfg.DisableStacktrace = true
27
	cfg.Sampling.Initial = 50
28
	cfg.Sampling.Thereafter = 50
29
	cfg.Encoding = config.Encoding
30
	cfg.OutputPaths = []string{"stdout"}
31
	cfg.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
32
	logger, err := cfg.Build()
33
	if err != nil {
34
		panic(err)
35
	}
36

37
	logger = logger.WithOptions(zap.Hooks(func(entry zapcore.Entry) error {
38
		return nil
39
	}))
40

41
	return logger.With(
42
		zap.Strings("tags", config.Tags),
43
	)
44
}
45

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

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

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

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