我正在Go中编写一个使用Logger对象类型的应用程序。
在其中,我使用了另一个使用相同记录器对象类型的应用程序:
应用1:

import "gitlab.sio.com/go/zlog"

var logger = zlog.New(append(opts,
    zlog.App(c.Name, typ, version),
    zlog.Env(c.Environment),
)...)
....
router.GET("/get", GetHandler(logger))
....
func GetHandler(logger *zlog.Logger){
    ....
    mdl, _ := security.New(*logger)
    ....
}

App2(安全性。来自安全性库的新增功能):
package security

import "gitlab.sio.com/go/zlog"

Middleware struct {
    log             zlog.Logger
}

func New(log zlog.Logger){
...
mdw := Middleware{}
mdw.log = log
}

我正在得到的错误



是:

最佳答案

问题是由于在两个不同的 vendor 文件夹中导入相同的库。
如果您尝试仅将应用程序2用作库,则在应用程序2中删除 vendor 文件夹将解决此问题。

10-02 08:04