5 回答
TA贡献1898条经验 获得超8个赞
您尝试做的事情是不可能的:
输出到stdout或stderr 的日志没有关联的日志级别。
内部系统消息具有DEBUG日志级别。
您可能需要的是使用Logging API,特别是Log Levels部分。
如果这对您不起作用,您可以尝试使用node.js
代替,go
因为它当前分别使用和向INFO
和级别发出日志。ERROR
console.log()
console.error()
TA贡献1875条经验 获得超3个赞
我创建了一个包来做到这一点: 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")
}
TA贡献1796条经验 获得超7个赞
您可以使用允许您设置日志级别的外部库。使用 logrus 设置最小日志级别(您可以通过在环境变量中提供日志级别来改进此代码),并使用 joonix 来设置 fluidd 格式化程序。(第 25 行)
一个注意点。第11行,我将logrus包重命名为log log "github.com/sirupsen/logrus"
因此,不使用log标准库,而是使用logrus库。有时很无聊......您可以简单地用 logrus 替换 log 以避免所有混乱。
Joonix 是一个 FluentD 格式化程序,用于将日志转换为 Stackdriver 可摄取的格式。
TA贡献1809条经验 获得超8个赞
我也尝试为此创建一个包。如果您使用 logrus ( https://github.com/sirupsen/logrus ),那么这可能会有所帮助:
https://github.com/tekkamanendless/gcfhook
我在生产中使用它,并且运行得很好。
TA贡献1836条经验 获得超5个赞
我推荐https://github.com/apsystole/log。它也与 log 和 logrus 兼容,但它是一个小型的零依赖模块,与两个现有答案中使用的库不同,后者将 400 多个模块作为其依赖项(喘息......我只是在看go mod graph
)。
- 5 回答
- 0 关注
- 146 浏览
添加回答
举报