google云日志在vm中动态设置当前资源

im9ewurl  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(519)

想知道是否有人知道我的问题的解决方案。在gcp上的vm内运行以下代码时,日志似乎转到 Global 资源类型。

from google.cloud import logging as cloudlogging

CLOUD_LOGGER_NAME = "nicee_test_logger"

log_client = cloudlogging.Client()
log_client.get_default_handler()
log_client.setup_logging()
cloud_logger = log_client.logger(CLOUD_LOGGER_NAME)

cloud_logger.log_struct(
  {
    "method": "<module>",
    "message": "This is message overwrite",
    "amount_failed": 10,
    "errors": [
      "a",
      "b",
      "c"
    ],
    "amount_transfered": 10
  }, severity="INFO"
)

当我查看日志ui并使用 resource.type="GLOBAL" 这个 {"foo": "bar"} 日志显示为 jsonPayload . 我想把这个放在下面 VM 资源类型。供参考的图像
我尝试了不同的日志记录方法和 log_struct 对我来说是最可行的。
有没有一种方法可以动态获取资源,并且仍然能够使用 log_struct 方法?

t3irkdon

t3irkdon1#

我在go库中进行了挖掘,发现使用该库时只允许使用4种可能的类型:

var resourceInfo = map[string]struct{ rtype, label string }{
    "organizations":   {"organization", "organization_id"},
    "folders":         {"folder", "folder_id"},
    "projects":        {"project", "project_id"},
    "billingAccounts": {"billing_account", "account_id"},
}

其他类型是内置的,您无法使用它们。但是,如果需要,您可以自定义日志名,并根据该日志名而不是资源类型进行筛选。

相关问题