1. 程式人生 > >etcd log level 日誌級別修改

etcd log level 日誌級別修改

開發十年,就只剩下這套架構體系了! >>>   

etcd 日誌級別修改

在使用etcd叢集的時候在續約租期的時候使用 KeepAlive()的時候,會出現大量下面的warn 日誌,導致整個日誌沒辦法進行檢視,所以需要自己手動去設定日誌級別,將這個錯誤忽略掉。

l.lg.Warn("lease keepalive response queue is full; dropping response send",
	zap.Int("queue-size", len(ch)),
	zap.Int("queue-capacity", cap(ch)),
)

原始碼預設使用的是DefaultLogConfig, 所以只需要在初始化客戶端的時候修改這個配置就可以了

lcfg := DefaultLogConfig
if cfg.LogConfig != nil {
	lcfg = *cfg.LogConfig
}

修改方式只需要將預設配置考過來修改Level為 zap.ErrorLevel

client, err := clientv3.New(clientv3.Config{
client, err := clientv3.New(clientv3.Config{
	Endpoints:   []string{"127.0.0.1:2379"},
	DialTimeout: 5 * time.Second,
	LogConfig: &zap.Config{
		Level:       zap.NewAtomicLevelAt(zap.ErrorLevel),
		Development: false,
		Sampling: &zap.SamplingConfig{
			Initial:    100,
			Thereafter: 100,
		},
		Encoding:      "json",
		EncoderConfig: zap.NewProductionEncoderConfig(),

		// Use "/dev/null" to discard all
		OutputPaths:      []string{"stderr"},
		ErrorOutputPaths: []string{"stderr"},
	},
})


使用租約程式碼

resp, err := client.Grant(context.TODO(), 5)
if err != nil {
	fmt.Println(err)
}

// the key 'foo' will be kept forever
ch, kaerr := client.KeepAlive(context.TODO(), resp.ID)
if kaerr != nil {
	fmt.Print