# #python #logging #google-cloud-platform #google-cloud-logging
Вопрос:
интересно, знает ли кто-нибудь решение моей проблемы. При выполнении следующего кода в виртуальной машине на GCP журнал, похоже, переходит к 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"
)
Когда я смотрю в пользовательский интерфейс ведения журнала и использую resource.type="GLOBAL"
{"foo": "bar"}
журнал, он отображается как jsonPayload
. Я хочу, чтобы это было под VM
типом ресурса. изображение для справки
Я пробовал разные методы ведения журнала, и log_struct
для меня это наиболее приемлемый.
Есть ли способ получить ресурс динамически и при этом иметь возможность использовать этот log_struct
метод?
Ответ №1:
Я покопался в библиотеке 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"},
}
Другие типы встроены, и вы не можете их использовать. Однако вы можете настроить свой логин, если хотите, и отфильтровать его вместо типа ресурса.