Merge pull request #8533 from gyuho/grpc

*: upgrade grpclog to LoggerV2
This commit is contained in:
Gyu-Ho Lee 2017-09-12 03:53:04 -07:00 committed by GitHub
commit 9553afbb24
6 changed files with 35 additions and 19 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) }

View File

@ -20,7 +20,6 @@ import (
"fmt" "fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"log"
"os" "os"
"strings" "strings"
"time" "time"
@ -31,6 +30,7 @@ import (
"github.com/coreos/etcd/pkg/srv" "github.com/coreos/etcd/pkg/srv"
"github.com/coreos/etcd/pkg/transport" "github.com/coreos/etcd/pkg/transport"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"google.golang.org/grpc/grpclog"
) )
// GlobalFlags are flags that defined globally // GlobalFlags are flags that defined globally
@ -97,7 +97,7 @@ func mustClientFromCmd(cmd *cobra.Command) *clientv3.Client {
ExitWithError(ExitError, derr) ExitWithError(ExitError, derr)
} }
if debug { if debug {
clientv3.SetLogger(log.New(os.Stderr, "grpc: ", 0)) clientv3.SetLogger(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))
} }
endpoints, err := endpointsFromCmd(cmd) endpoints, err := endpointsFromCmd(cmd)

View File

@ -17,6 +17,7 @@ package v3rpc
import ( import (
"crypto/tls" "crypto/tls"
"math" "math"
"os"
"github.com/coreos/etcd/etcdserver" "github.com/coreos/etcd/etcdserver"
pb "github.com/coreos/etcd/etcdserver/etcdserverpb" pb "github.com/coreos/etcd/etcdserver/etcdserverpb"
@ -35,7 +36,7 @@ const (
) )
func init() { func init() {
grpclog.SetLogger(plog) grpclog.SetLoggerV2(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))
} }
func Server(s *etcdserver.EtcdServer, tls *tls.Config) *grpc.Server { func Server(s *etcdserver.EtcdServer, tls *tls.Config) *grpc.Server {

View File

@ -18,12 +18,12 @@ import (
"context" "context"
"crypto/rand" "crypto/rand"
"fmt" "fmt"
"log"
"os" "os"
"strings" "strings"
"github.com/coreos/etcd/clientv3" "github.com/coreos/etcd/clientv3"
"github.com/coreos/etcd/pkg/report" "github.com/coreos/etcd/pkg/report"
"google.golang.org/grpc/grpclog"
) )
var ( var (
@ -98,7 +98,7 @@ func mustCreateConn() *clientv3.Client {
return mustCreateConn() return mustCreateConn()
} }
clientv3.SetLogger(log.New(os.Stderr, "grpc", 0)) clientv3.SetLogger(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "dial error: %v\n", err) fmt.Fprintf(os.Stderr, "dial error: %v\n", err)

View File

@ -16,6 +16,7 @@ package main
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
"sync" "sync"
"time" "time"
@ -24,7 +25,7 @@ import (
"google.golang.org/grpc/grpclog" "google.golang.org/grpc/grpclog"
) )
func init() { grpclog.SetLogger(plog) } func init() { grpclog.SetLoggerV2(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr)) }
type Stresser interface { type Stresser interface {
// Stress starts to stress the etcd cluster // Stress starts to stress the etcd cluster