我正在尝试让 stackdriver 日志记录在 Google Cloud Run(完全托管)中运行的简单 Go 应用程序正常工作,但在 CloudRun 日志中看不到 stackdriver 条目。
我根据“官方”stackdriver golang 示例创建了最简单的演示应用程序
Cloud Run 文档指出不应执行任何其他操作来写入 stackdriver 日志
我的服务使用默认服务帐户
我正在使用 Go 1.13 编译代码(Dockerfile 是从Cloud Run 示例“按原样”复制的)
我尝试过将其部署到不同的地区,但没有成功
使用服务帐户凭据在本地运行容器时,stackdriver 日志消息不会出现在本地终端或 stackdriver 控制台中
无论如何,在应用程序启动时,我只看到"Before stackdriver logging"
后面的内容,"After stackdriver logging"
中间没有其他消息\错误
以下是日志记录代码的一部分(使用上面的链接获取完整源代码、Dockerfile 以及构建和运行应用程序的说明):
import (
"context"
"log"
"os"
...
"cloud.google.com/go/compute/metadata"
"cloud.google.com/go/logging"
)
func main() {
loggingClient, err := stackdriverClient()
...
log.Println("Before stackdriver logging")
logger.StandardLogger(logging.Info).Println("Stackdriver log")
if err = logger.Flush(); err != nil {
log.Fatalf("Failed to flush client: %v", err)
}
if err = loggingClient.Close(); err != nil {
log.Fatalf("Failed to close client: %v", err)
}
log.Println("After stackdriver logging")
...
}
func stackdriverClient() (client *logging.Client, err error) {
var projectID string
if projectID, err = metadata.ProjectID(); err == nil {
client, err = logging.NewClient(context.Background(), projectID)
}
return
}
蝴蝶不菲
慕妹3146593
相关分类