从 Kubernetes pod 中的 Google 个云端点登录到 Stackdriver

Logging to Stackdriver from Google Cloud Endpoints in Kubernetes pod

我在从我的 golang api 登录到 Stackdriver 时遇到问题。我的配置:

我使用的代码如下:

    api.Logger = func(text string, args ...interface{}) {
    ctx := context.Background()

    // Sets your Google Cloud Platform project ID.
    projectID := "my-project-name"

    // Creates a client.
    client, err := logging.NewClient(ctx, projectID)
    if err != nil {
        log.Fatalf("Failed to create client: %v", err)
    }

    // Sets the name of the log to write to.
    logName := "tried.various.different.names.with.no.luck"

    // Selects the log to write to.
    logger := client.Logger(logName)

    // Sets the data to log.
    textL := fmt.Sprintf(text, args...)

    // Adds an entry to the log buffer.
    logger.Log(logging.Entry{Payload: textL, Severity: logging.Critical})

    // Closes the client and flushes the buffer to the Stackdriver Logging
    // service.
    if err := client.Close(); err != nil {
        log.Fatalf("Failed to close client: %v", err)
    }

    fmt.Printf("Logged: %v\n", textL)

}

我目前不需要错误报告,因为我只是在评估 - 我很乐意只发送非结构化文本。但不清楚我是否需​​要做类似 的事情才能得到它?

使用 Stackdriver 日志记录客户端创建的日志条目似乎未归入任何预定义类别,因此很难在日志查看器的基本模式下找到。

尝试通过将查询转换为 advanced filter 来访问日志查看器 "advanced filter interface" 并创建以下过滤器:

logName:"projects/my-project-name/logs/tried.various.different.names.with.no.luck"

至少对我有用。

云中的 Golang 应用程序有类似问题 运行。
要查找 stackdriver 日志,您必须在 Logs Viewer

中指定过滤器 resource.type = "project"