Browse Source

raftsnap: support structured logger

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
Gyuho Lee 7 years ago
parent
commit
ce8348e3e0
3 changed files with 24 additions and 9 deletions
  1. 11 1
      raftsnap/db.go
  2. 4 1
      raftsnap/snapshotter.go
  3. 9 7
      raftsnap/snapshotter_test.go

+ 11 - 1
raftsnap/db.go

@@ -23,6 +23,8 @@ import (
 	"path/filepath"
 
 	"github.com/coreos/etcd/pkg/fileutil"
+	humanize "github.com/dustin/go-humanize"
+	"go.uber.org/zap"
 )
 
 var ErrNoDBSnapshot = errors.New("snap: snapshot file doesn't exist")
@@ -55,7 +57,15 @@ func (s *Snapshotter) SaveDBFrom(r io.Reader, id uint64) (int64, error) {
 		return n, err
 	}
 
-	plog.Infof("saved database snapshot to disk [total bytes: %d]", n)
+	if s.lg != nil {
+		s.lg.Info(
+			"saved database snapshot to disk",
+			zap.Int64("bytes", n),
+			zap.String("size", humanize.Bytes(uint64(n))),
+		)
+	} else {
+		plog.Infof("saved database snapshot to disk [total bytes: %d]", n)
+	}
 
 	return n, nil
 }

+ 4 - 1
raftsnap/snapshotter.go

@@ -32,6 +32,7 @@ import (
 	"github.com/coreos/etcd/raftsnap/snappb"
 
 	"github.com/coreos/pkg/capnslog"
+	"go.uber.org/zap"
 )
 
 const (
@@ -53,11 +54,13 @@ var (
 )
 
 type Snapshotter struct {
+	lg  *zap.Logger
 	dir string
 }
 
-func New(dir string) *Snapshotter {
+func New(lg *zap.Logger, dir string) *Snapshotter {
 	return &Snapshotter{
+		lg:  lg,
 		dir: dir,
 	}
 }

+ 9 - 7
raftsnap/snapshotter_test.go

@@ -24,6 +24,8 @@ import (
 	"testing"
 
 	"github.com/coreos/etcd/raft/raftpb"
+
+	"go.uber.org/zap"
 )
 
 var testSnap = &raftpb.Snapshot{
@@ -44,7 +46,7 @@ func TestSaveAndLoad(t *testing.T) {
 		t.Fatal(err)
 	}
 	defer os.RemoveAll(dir)
-	ss := New(dir)
+	ss := New(zap.NewExample(), dir)
 	err = ss.save(testSnap)
 	if err != nil {
 		t.Fatal(err)
@@ -66,7 +68,7 @@ func TestBadCRC(t *testing.T) {
 		t.Fatal(err)
 	}
 	defer os.RemoveAll(dir)
-	ss := New(dir)
+	ss := New(zap.NewExample(), dir)
 	err = ss.save(testSnap)
 	if err != nil {
 		t.Fatal(err)
@@ -96,7 +98,7 @@ func TestFailback(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	ss := New(dir)
+	ss := New(zap.NewExample(), dir)
 	err = ss.save(testSnap)
 	if err != nil {
 		t.Fatal(err)
@@ -131,7 +133,7 @@ func TestSnapNames(t *testing.T) {
 			f.Close()
 		}
 	}
-	ss := New(dir)
+	ss := New(zap.NewExample(), dir)
 	names, err := ss.snapNames()
 	if err != nil {
 		t.Errorf("err = %v, want nil", err)
@@ -152,7 +154,7 @@ func TestLoadNewestSnap(t *testing.T) {
 		t.Fatal(err)
 	}
 	defer os.RemoveAll(dir)
-	ss := New(dir)
+	ss := New(zap.NewExample(), dir)
 	err = ss.save(testSnap)
 	if err != nil {
 		t.Fatal(err)
@@ -181,7 +183,7 @@ func TestNoSnapshot(t *testing.T) {
 		t.Fatal(err)
 	}
 	defer os.RemoveAll(dir)
-	ss := New(dir)
+	ss := New(zap.NewExample(), dir)
 	_, err = ss.Load()
 	if err != ErrNoSnapshot {
 		t.Errorf("err = %v, want %v", err, ErrNoSnapshot)
@@ -222,7 +224,7 @@ func TestAllSnapshotBroken(t *testing.T) {
 		t.Fatal(err)
 	}
 
-	ss := New(dir)
+	ss := New(zap.NewExample(), dir)
 	_, err = ss.Load()
 	if err != ErrNoSnapshot {
 		t.Errorf("err = %v, want %v", err, ErrNoSnapshot)