diff --git a/raftsnap/db.go b/raftsnap/db.go index cf9ffccb0..9c8a1f947 100644 --- a/raftsnap/db.go +++ b/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 } diff --git a/raftsnap/snapshotter.go b/raftsnap/snapshotter.go index 228f1f6fb..f420eaa4d 100644 --- a/raftsnap/snapshotter.go +++ b/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, } } diff --git a/raftsnap/snapshotter_test.go b/raftsnap/snapshotter_test.go index 368154e23..6393afd56 100644 --- a/raftsnap/snapshotter_test.go +++ b/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)