我正在使用etcd的wal软件包(https://godoc.org/github.com/coreos/etcd/wal)进行预写日志记录。 wal的供应商软件包中有go.uber.org/zap
。在wal的创建函数func Create(lg *zap.Logger, dirpath string, metadata []byte) (*WAL, error)
中,我需要传递zap.Logger
。
我尝试导入go.uber.org/zap
,但是当我传入zap.Logger
时,编译器会抱怨“类型不匹配”。
package main
import (
"github.com/coreos/etcd/wal"
)
func check(e error) {
if e != nil {
panic(e)
}
}
func main() {
metadata := []byte{}
w, err := wal.Create(zap.NewExample(), "/tmp/hello", metadata)
// err := w.Save(s, ents)
}
我应如何在项目中使用zap.Logger
?
答案 0 :(得分:2)
似乎软件包AppBarConfiguration config =
new AppBarConfiguration.Builder(R.id.navigation_main, R.id.fragment_main_screen).build();
并不打算在etcd项目之外使用。如果您确实需要使用它,请按照以下步骤操作。
将以下代码放入github.com/coreos/etcd/wal
文件中。
$GOPATH/src/yourpackage/main.go
package main
import (
"fmt"
"go.etcd.io/etcd/wal"
"go.uber.org/zap"
)
func main() {
metadata := []byte{}
w, err := wal.Create(zap.NewExample(), "/tmp/hello", metadata)
fmt.Println(w, err)
}
mkdir $GOPATH/src/yourpackage/vendor
cp -r $GOPATH/src/go.etcd.io $GOPATH/src/yourpackage/vendor/
mv $GOPATH/src/yourpackage/vendor/go.etcd.io/etcd/vendor/go.uber.org $GOPATH/src/yourpackage/vendor/