diff --git a/clientv3/balancer/balancer.go b/clientv3/balancer/balancer.go index 25dc2b7e7..3c44e70c6 100644 --- a/clientv3/balancer/balancer.go +++ b/clientv3/balancer/balancer.go @@ -36,7 +36,7 @@ func RegisterBuilder(cfg Config) { bb := &builder{cfg} balancer.Register(bb) - bb.cfg.Logger.Info( + bb.cfg.Logger.Debug( "registered balancer", zap.String("policy", bb.cfg.Policy.String()), zap.String("name", bb.cfg.Name), diff --git a/clientv3/client.go b/clientv3/client.go index 276b0f042..7bc93d88f 100644 --- a/clientv3/client.go +++ b/clientv3/client.go @@ -32,6 +32,7 @@ import ( "go.etcd.io/etcd/clientv3/balancer/picker" "go.etcd.io/etcd/clientv3/balancer/resolver/endpoint" "go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes" + "go.etcd.io/etcd/pkg/logutil" "go.uber.org/zap" "google.golang.org/grpc" "google.golang.org/grpc/codes" @@ -446,7 +447,7 @@ func newClient(cfg *Config) (*Client, error) { callOpts: defaultCallOpts, } - lcfg := DefaultLogConfig + lcfg := logutil.DefaultZapLoggerConfig if cfg.LogConfig != nil { lcfg = *cfg.LogConfig } @@ -530,10 +531,10 @@ func (c *Client) roundRobinQuorumBackoff(waitBetween time.Duration, jitterFracti n := uint(len(c.Endpoints())) quorum := (n/2 + 1) if attempt%quorum == 0 { - c.lg.Info("backoff", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum), zap.Duration("waitBetween", waitBetween), zap.Float64("jitterFraction", jitterFraction)) + c.lg.Debug("backoff", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum), zap.Duration("waitBetween", waitBetween), zap.Float64("jitterFraction", jitterFraction)) return jitterUp(waitBetween, jitterFraction) } - c.lg.Info("backoff skipped", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum)) + c.lg.Debug("backoff skipped", zap.Uint("attempt", attempt), zap.Uint("quorum", quorum)) return 0 } } diff --git a/clientv3/config.go b/clientv3/config.go index 96e94e1c0..bd0376880 100644 --- a/clientv3/config.go +++ b/clientv3/config.go @@ -82,21 +82,3 @@ type Config struct { // PermitWithoutStream when set will allow client to send keepalive pings to server without any active streams(RPCs). PermitWithoutStream bool `json:"permit-without-stream"` } - -// DefaultLogConfig is the default client logging configuration. -// Default log level is "Warn". Use "zap.InfoLevel" for debugging. -// Use "/dev/null" for output paths, to discard all logs. -var DefaultLogConfig = zap.Config{ - Level: zap.NewAtomicLevelAt(zap.WarnLevel), - 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"}, -} diff --git a/clientv3/retry_interceptor.go b/clientv3/retry_interceptor.go index 6b1054ea1..e48a00367 100644 --- a/clientv3/retry_interceptor.go +++ b/clientv3/retry_interceptor.go @@ -48,7 +48,7 @@ func (c *Client) unaryClientInterceptor(logger *zap.Logger, optFuncs ...retryOpt if err := waitRetryBackoff(ctx, attempt, callOpts); err != nil { return err } - logger.Info( + logger.Debug( "retrying of unary invoker", zap.String("target", cc.Target()), zap.Uint("attempt", attempt), @@ -112,7 +112,7 @@ func (c *Client) streamClientInterceptor(logger *zap.Logger, optFuncs ...retryOp return nil, grpc.Errorf(codes.Unimplemented, "clientv3/retry_interceptor: cannot retry on ClientStreams, set Disable()") } newStreamer, err := streamer(ctx, desc, cc, method, grpcOpts...) - logger.Info("retry stream intercept", zap.Error(err)) + logger.Warn("retry stream intercept", zap.Error(err)) if err != nil { // TODO(mwitkow): Maybe dial and transport errors should be retriable? return nil, err @@ -228,7 +228,7 @@ func (s *serverStreamingRetryingStream) receiveMsgAndIndicateRetry(m interface{} if s.callOpts.retryAuth && rpctypes.Error(err) == rpctypes.ErrInvalidAuthToken { gterr := s.client.getToken(s.ctx) if gterr != nil { - s.client.lg.Info("retry failed to fetch new auth token", zap.Error(gterr)) + s.client.lg.Warn("retry failed to fetch new auth token", zap.Error(gterr)) return false, err // return the original error for simplicity } return true, err