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

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

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

  1. from google.cloud import logging as cloudlogging
  2. CLOUD_LOGGER_NAME = "nicee_test_logger"
  3. log_client = cloudlogging.Client()
  4. log_client.get_default_handler()
  5. log_client.setup_logging()
  6. cloud_logger = log_client.logger(CLOUD_LOGGER_NAME)
  7. cloud_logger.log_struct(
  8. {
  9. "method": "<module>",
  10. "message": "This is message overwrite",
  11. "amount_failed": 10,
  12. "errors": [
  13. "a",
  14. "b",
  15. "c"
  16. ],
  17. "amount_transfered": 10
  18. }, severity="INFO"
  19. )

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

t3irkdon

t3irkdon1#

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

  1. var resourceInfo = map[string]struct{ rtype, label string }{
  2. "organizations": {"organization", "organization_id"},
  3. "folders": {"folder", "folder_id"},
  4. "projects": {"project", "project_id"},
  5. "billingAccounts": {"billing_account", "account_id"},
  6. }

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

相关问题