![](/img/trans.png)
[英]I can't deploy a Go module to App Engine using the google.golang.org/appengine modules
[英]Replacement for Go App Engine "google.golang.org/appengine/log" package, with log levels?
我注意到此 package 已弃用,根据此处的文档: https://cloud.google.com/appengine/docs/standard/go/go-differences
什么是登录 Go 1.12+而不会通过简单打印丢失日志级别的正确方法是什么? (调试/信息/警告/错误/关键/等)
您至少有 2 个解决方案:
logrus
)和特殊的 Stackdriver 适配器在 Stackdriver 日志中获得具有正确格式和正确级别的日志这是我认为的默认解决方案:
import "cloud.google.com/go/logging"
ctx := context.Background()
client, err := logging.NewClient(ctx, "my-project")
logger := client.Logger("my-log")
logger.Log(logging.Entry{Payload: "something happened!", Severity: logging.Info})
但是每次你想记录一些东西时,创建一个Entry
object 可能很乏味。 如果您只想编写log.Debug
、 log.Info
,当然您可以创建函数logDebug
、 logInfo
等,但您也可以使用其他解决方案(基于 logrus)。
正如我所说,您可以使用logrus
),这对于登录 Go 项目非常常见。 但是你需要做一个小的修改,将默认的文本日志转换为 Stackdriver 可以理解的日志条目格式。
import (
log "github.com/sirupsen/logrus"
stackdriver "github.com/TV4/logrus-stackdriver-formatter" // adapter
)
log.SetFormatter(stackdriver.NewFormatter())
log.SetLevel(log.DebugLevel) // default is Info
log.Debug("This is debug")
log.Info("This is info")
log.Error("This is error")
log.Warn("This is warn")
结果如下(注意正确的级别):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.