clientv3: upgrade grpclog to LoggerV2

grpclog.Logger has been deprecated.
This commit is contained in:
Gyu-Ho Lee 2017-09-08 14:41:11 -07:00
parent 80aa810309
commit d6c33367c4
2 changed files with 27 additions and 13 deletions

View File

@ -17,11 +17,13 @@ package clientv3_test
import ( import (
"context" "context"
"log" "log"
"os"
"time" "time"
"github.com/coreos/etcd/clientv3" "github.com/coreos/etcd/clientv3"
"github.com/coreos/etcd/pkg/transport" "github.com/coreos/etcd/pkg/transport"
"github.com/coreos/pkg/capnslog"
"google.golang.org/grpc/grpclog"
) )
var ( var (
@ -31,8 +33,7 @@ var (
) )
func Example() { func Example() {
var plog = capnslog.NewPackageLogger("github.com/coreos/etcd", "clientv3") clientv3.SetLogger(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))
clientv3.SetLogger(plog)
cli, err := clientv3.New(clientv3.Config{ cli, err := clientv3.New(clientv3.Config{
Endpoints: endpoints, Endpoints: endpoints,

View File

@ -16,36 +16,35 @@ package clientv3
import ( import (
"io/ioutil" "io/ioutil"
"log"
"sync" "sync"
"google.golang.org/grpc/grpclog" "google.golang.org/grpc/grpclog"
) )
// Logger is the logger used by client library. // Logger is the logger used by client library.
// It implements grpclog.Logger interface. // It implements grpclog.LoggerV2 interface.
type Logger grpclog.Logger type Logger grpclog.LoggerV2
var ( var (
logger settableLogger logger settableLogger
) )
type settableLogger struct { type settableLogger struct {
l grpclog.Logger l grpclog.LoggerV2
mu sync.RWMutex mu sync.RWMutex
} }
func init() { func init() {
// disable client side logs by default // disable client side logs by default
logger.mu.Lock() logger.mu.Lock()
logger.l = log.New(ioutil.Discard, "", 0) logger.l = grpclog.NewLoggerV2(ioutil.Discard, ioutil.Discard, ioutil.Discard)
// logger has to override the grpclog at initialization so that // logger has to override the grpclog at initialization so that
// any changes to the grpclog go through logger with locking // any changes to the grpclog go through logger with locking
// instead of through SetLogger // instead of through SetLogger
// //
// now updates only happen through settableLogger.set // now updates only happen through settableLogger.set
grpclog.SetLogger(&logger) grpclog.SetLoggerV2(&logger)
logger.mu.Unlock() logger.mu.Unlock()
} }
@ -72,11 +71,25 @@ func (s *settableLogger) get() Logger {
return l return l
} }
// implement the grpclog.Logger interface // implement the grpclog.LoggerV2 interface
func (s *settableLogger) Info(args ...interface{}) { s.get().Info(args...) }
func (s *settableLogger) Infof(format string, args ...interface{}) { s.get().Infof(format, args...) }
func (s *settableLogger) Infoln(args ...interface{}) { s.get().Infoln(args...) }
func (s *settableLogger) Warning(args ...interface{}) { s.get().Warning(args...) }
func (s *settableLogger) Warningf(format string, args ...interface{}) {
s.get().Warningf(format, args...)
}
func (s *settableLogger) Warningln(args ...interface{}) { s.get().Warningln(args...) }
func (s *settableLogger) Error(args ...interface{}) { s.get().Error(args...) }
func (s *settableLogger) Errorf(format string, args ...interface{}) {
s.get().Errorf(format, args...)
}
func (s *settableLogger) Errorln(args ...interface{}) { s.get().Errorln(args...) }
func (s *settableLogger) Fatal(args ...interface{}) { s.get().Fatal(args...) } func (s *settableLogger) Fatal(args ...interface{}) { s.get().Fatal(args...) }
func (s *settableLogger) Fatalf(format string, args ...interface{}) { s.get().Fatalf(format, args...) } func (s *settableLogger) Fatalf(format string, args ...interface{}) { s.get().Fatalf(format, args...) }
func (s *settableLogger) Fatalln(args ...interface{}) { s.get().Fatalln(args...) } func (s *settableLogger) Fatalln(args ...interface{}) { s.get().Fatalln(args...) }
func (s *settableLogger) Print(args ...interface{}) { s.get().Print(args...) } func (s *settableLogger) Print(args ...interface{}) { s.get().Info(args...) }
func (s *settableLogger) Printf(format string, args ...interface{}) { s.get().Printf(format, args...) } func (s *settableLogger) Printf(format string, args ...interface{}) { s.get().Infof(format, args...) }
func (s *settableLogger) Println(args ...interface{}) { s.get().Println(args...) } func (s *settableLogger) Println(args ...interface{}) { s.get().Infoln(args...) }
func (s *settableLogger) V(l int) bool { return s.get().V(l) }