如何配置 cloud.google.com/go/logging 使其看起来像写入标准输出的日志?
How to configure cloud.google.com/go/logging to look like logs written to stdout?
我正在用 Go 编写 Google 云函数。我可以通过写入标准输出来简单地编写日志消息。生成的日志包括有关函数的信息、它的运行时、跟踪信息等。非常好,但是,我想在我的日志中添加一些结构化数据,这意味着 stdout 不够灵活。所以我正在尝试使用 "cloud.google.com/go/logging"。我是这样设置的:
// Set up like this
logClient, err = logging.NewClient(ctx, "my-project-id")
if err != nil {
return
}
logger := logClient.Logger("my-function-name")
// And log like this
logger.Log(logging.Entry{
Payload: "Hello World!",
Severity: logging.Info,
})
但是,我在 Cloud Console 上看到的日志缺少所有自动附加到 stdout 日志的有用信息。
要取回一部分,我可以在设置记录器时添加此选项:
logging.CommonResource(&monitoredres.MonitoredResource{
Type: fmt.Sprintf("projects/%s/logs/cloudfunctions.googleapis.com%scloud-functions", os.Getenv("GCP_PROJECT"), "%2F"),
Labels: map[string]string{
"function_name": os.Getenv("FUNCTION_NAME"),
"project_id": os.Getenv("GCP_PROJECT"),
"region": os.Getenv("FUNCTION_REGION"),
},
})
这使我可以在单击 Cloud Console 的云功能列表中的 "see logs" 按钮时查看日志。但是,它缺少函数执行 ID 和跟踪 ID。
我是否遗漏了一些明显的东西,或者为 Google 云服务设置合适的日志记录是否过于复杂?任何帮助表示赞赏。
诀窍是简单地将 json 字符串写入标准输出。
fmt.Println(`{"field_name": "Hello World!"}`)
日志的架构可以是 found here。
例如像这样设置严重性:
fmt.Println(`{"field_name": "Hello World!", "severity": "DEBUG"}`)
我正在用 Go 编写 Google 云函数。我可以通过写入标准输出来简单地编写日志消息。生成的日志包括有关函数的信息、它的运行时、跟踪信息等。非常好,但是,我想在我的日志中添加一些结构化数据,这意味着 stdout 不够灵活。所以我正在尝试使用 "cloud.google.com/go/logging"。我是这样设置的:
// Set up like this
logClient, err = logging.NewClient(ctx, "my-project-id")
if err != nil {
return
}
logger := logClient.Logger("my-function-name")
// And log like this
logger.Log(logging.Entry{
Payload: "Hello World!",
Severity: logging.Info,
})
但是,我在 Cloud Console 上看到的日志缺少所有自动附加到 stdout 日志的有用信息。
要取回一部分,我可以在设置记录器时添加此选项:
logging.CommonResource(&monitoredres.MonitoredResource{
Type: fmt.Sprintf("projects/%s/logs/cloudfunctions.googleapis.com%scloud-functions", os.Getenv("GCP_PROJECT"), "%2F"),
Labels: map[string]string{
"function_name": os.Getenv("FUNCTION_NAME"),
"project_id": os.Getenv("GCP_PROJECT"),
"region": os.Getenv("FUNCTION_REGION"),
},
})
这使我可以在单击 Cloud Console 的云功能列表中的 "see logs" 按钮时查看日志。但是,它缺少函数执行 ID 和跟踪 ID。
我是否遗漏了一些明显的东西,或者为 Google 云服务设置合适的日志记录是否过于复杂?任何帮助表示赞赏。
诀窍是简单地将 json 字符串写入标准输出。
fmt.Println(`{"field_name": "Hello World!"}`)
日志的架构可以是 found here。
例如像这样设置严重性:
fmt.Println(`{"field_name": "Hello World!", "severity": "DEBUG"}`)