使用 Google Cloud go 库进行日志记录的问题

Problems using the Google Cloud go library for logging

我正在尝试将 import "cloud.google.com/go/logging" 与此处找到的 Go 示例代码一起使用:https://cloud.google.com/logging/docs/reference/libraries#using_the_client_library。使用 go1.15.6,我尝试了这些东西:

$ go get -u cloud.google.com/go/logging

# many errors about dependencies, so
$ go get -u github.com/google/go-cmp/cmp
$ go get -u golang.org/x/sync/semaphore

# then I can get through this one
$ go get -u cloud.google.com/go/logging

# for further amusement, these two fail with what seems to be a compiler error
$ go get cloud.google.com/go/storage
$ go get cloud.google.com/go/iam

# Then trying to build my code using Logging:
$ go build -i -v
cloud.google.com/go/logging/apiv2
# cloud.google.com/go/logging/apiv2
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:269:62: undefined: logging.ListBucketsRequest
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:310:60: undefined: logging.GetBucketRequest
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:310:114: undefined: logging.LogBucket
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:328:63: undefined: logging.CreateBucketRequest
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:328:120: undefined: logging.LogBucket
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:354:63: undefined: logging.UpdateBucketRequest
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:354:120: undefined: logging.LogBucket
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:374:63: undefined: logging.DeleteBucketRequest
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:825:14: undefined: logging.LogBucket
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:840:65: undefined: logging.LogBucket
../../go/src/cloud.google.com/go/logging/apiv2/config_client.go:374:63: too many errors```

感谢 JimB (https://whosebug.com/users/32880/jimb) 提供的评论 在这个指向这个答案方向的问题 Problems installing GCP go library for logging(被不想提供帮助的人粗鲁地关闭了)。

这里的问题是你没有使用模块,Google云库只支持那样使用。这意味着您根本不使用 go get ... 尽管文档 https://cloud.google.com/logging/docs/reference/libraries#client-libraries-install-go 。相反,首先创建这个 go.mod 文件:

module example.com/mymod

go 1.15

require (
    cloud.google.com/go/logging v1.1.2
)

然后,运行 go build -i -v 将安装所有必需的模块。