...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package clientv3
16
17 import (
18 "log"
19 "os"
20
21 "go.etcd.io/etcd/client/pkg/v3/logutil"
22 "go.uber.org/zap/zapcore"
23 "go.uber.org/zap/zapgrpc"
24 "google.golang.org/grpc/grpclog"
25 )
26
27 func init() {
28
29
30 if os.Getenv("ETCD_CLIENT_DEBUG") != "" {
31 lg, err := logutil.CreateDefaultZapLogger(etcdClientDebugLevel())
32 if err != nil {
33 panic(err)
34 }
35 lg = lg.Named("etcd-client")
36 grpclog.SetLoggerV2(zapgrpc.NewLogger(lg))
37 }
38 }
39
40
41
42
43 func SetLogger(l grpclog.LoggerV2) {
44 grpclog.SetLoggerV2(l)
45 }
46
47
48 func etcdClientDebugLevel() zapcore.Level {
49 envLevel := os.Getenv("ETCD_CLIENT_DEBUG")
50 if envLevel == "" || envLevel == "true" {
51 return zapcore.InfoLevel
52 }
53 var l zapcore.Level
54 if err := l.Set(envLevel); err != nil {
55 log.Printf("Invalid value for environment variable 'ETCD_CLIENT_DEBUG'. Using default level: 'info'")
56 return zapcore.InfoLevel
57 }
58 return l
59 }
60
View as plain text