我试图通过gcloud
命令行程序读取我的Google云存储项目中的存储区的服务器端日志(以解决我使用存储客户端时出现的错误)。它似乎不像Stackdriver Logging UI中的日志。
那么,第一个问题:这些日志是否可用?如果是这样,我该如何访问它们?
它看起来应该可以通过gcloud
:
Mortens-MacBook-Pro:~ skyfer$ gcloud logging resource-descriptors list | grep -i storage
gcs_bucket A Google Cloud Storage (GCS) bucket.
project_id,bucket_name,location
但是使用gcloud logging read
,例如像以下不起作用:
Mortens-MacBook-Pro:~ skyfer$ gcloud logging read "resource.type=gcs_bucket AND logName=projects/my-project/logs/ AND textPayload:StorageException" --limit 10 --format json
[]
ERROR: (gcloud.logging.read) INVALID_ARGUMENT: Name is missing the logs component. Expected the form projects/[PROJECT_ID]/logs/[ID]
所以一个重要的问题是:ID
的语法是什么?我能够找到的文档,例如LogEntry和Available Logs,似乎没有给出答案。
我尝试了各种格式,但没有一种格式化:它们要么返回语法错误,要么没有结果。我也试过省略ID
,但这只是返回一个空列表:
Mortens-MacBook-Pro:~ skyfer$ gcloud logging read "resource.type=gcs_bucket AND logName=projects/my-project/logs/my-bucket" --limit 10 --format json
[]
如果我将存储桶的名称更改为不存在的存储桶,则它似乎没有区别,表明存储桶名称不是ID的一部分。
存储桶存在于Google云端存储中:通过用户界面和gsutil
验证:
Mortens-MacBook-Pro:~ skyfer$ gsutil ls gs://my-bucket/
gs://my-bucket/03ea8f19-8135-4101-a04a-aef3f19b0fdb/
gs://my-bucket/59e86a67-d035-4e4a-bc56-7c2da5e8c908/
任何帮助将非常感激。
您可以使用以下命令gcloud logging logs list
列出所有日志
您可以使用以下命令gcloud logging read <LOG_NAME>
读取特定日志