-
汪汪一只猫
您尝试做的事情是不可能的:输出到stdout或stderr 的日志没有关联的日志级别。内部系统消息具有DEBUG日志级别。您可能需要的是使用Logging API,特别是Log Levels部分。如果这对您不起作用,您可以尝试使用node.js代替,go因为它当前分别使用和向INFO和级别发出日志。ERRORconsole.log()console.error()
-
翻过高山走不出你
我创建了一个包来做到这一点: github.com/ncruces/go-gcp/glog它适用于 App Engine、Kubernetes Engine、Cloud Run 和 Cloud Functions。支持设置日志记录级别、请求/跟踪元数据和结构化日志记录。用法:func HelloWorld(w http.ResponseWriter, r *http.Request) { glog.Infoln("Hello logs") glog.Errorln("Hello logs") // or, to set request metadata: logger := glog.ForRequest(r) logger.Infoln("Hello logs")}
-
芜湖不芜
您可以使用允许您设置日志级别的外部库。使用 logrus 设置最小日志级别(您可以通过在环境变量中提供日志级别来改进此代码),并使用 joonix 来设置 fluidd 格式化程序。(第 25 行)一个注意点。第11行,我将logrus包重命名为log log "github.com/sirupsen/logrus" 因此,不使用log标准库,而是使用logrus库。有时很无聊......您可以简单地用 logrus 替换 log 以避免所有混乱。Joonix 是一个 FluentD 格式化程序,用于将日志转换为 Stackdriver 可摄取的格式。
-
海绵宝宝撒
我也尝试为此创建一个包。如果您使用 logrus ( https://github.com/sirupsen/logrus ),那么这可能会有所帮助:https://github.com/tekkamanendless/gcfhook我在生产中使用它,并且运行得很好。
-
一只甜甜圈
我推荐https://github.com/apsystole/log。它也与 log 和 logrus 兼容,但它是一个小型的零依赖模块,与两个现有答案中使用的库不同,后者将 400 多个模块作为其依赖项(喘息......我只是在看go mod graph)。