/
logger.go
34 lines (28 loc) · 846 Bytes
/
logger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
func Init() (*zap.Logger, *zap.SugaredLogger) {
config := zap.NewDevelopmentConfig()
config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
logger, _ := config.Build()
slogger := logger.Sugar()
defer logger.Sync()
defer slogger.Sync()
return logger, slogger
}
// Usage examples:
// logger.Info("failed to fetch URL",
// // Structured context as strongly typed Field values.
// zap.String("Prefork", os.Getenv("PREFORK")),
// zap.Int("attempt", 3),
// zap.Duration("backoff", time.Second),
// )
// slogger.Infow("failed to fetch URL",
// // Structured context as loosely typed key-value pairs.
// "Prefork", os.Getenv("PREFORK"),
// "attempt", 3,
// "backoff", time.Second,
// )