go - Google的logadmin中的条目迭代器从不返回迭代器。

标签 go logging gcloud

我正在使用日志包中的Google logadmin包,并尝试使用过滤器检索一些日志。很简单...大概我想。但是迭代器从不返回iterator.Done
通过查看GitHub程序包中 Unresolved 问题并进行搜索,我什么都找不到。
我的代码:

iter := client.Entries(ctx, logadmin.NewestFirst(),
    logadmin.Filter(
        fmt.Sprintf(`resource.type="cloud_function" resource.labels.function_name="%s"`, logger)))
var entries []string
for {
    select {
    case <-ctx.Done():
        return nil
    default:
        entry, err := iter.Next()
        log.Print(fmt.Sprintf("[%s] [LEVEL]: %s\n [PAYLOAD]: %s\n [TIMESTAMP]: %s\n\n", logger,
            entry.Severity, entry.Payload, entry.Timestamp.String()))
        if err == iterator.Done {
            return nil
        }
        if err != nil {
            return err
        }
    }
}

最佳答案

我设法通过向过滤器添加时间戳来解决问题,如下所示:

now := time.Now().Add(-24 * time.Hour).Format(time.RFC3339)
filter := fmt.Sprintf(`resource.type="cloud_function" resource.labels.function_name="%s" timestamp > %s`, logger, now)

关于go - Google的logadmin中的条目迭代器从不返回迭代器。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62922687/

相关文章:

go jwt ValidationKeyGetter 不编译

go - 查找文本中出现次数最多的字符

go - 为什么 atomic.StoreUint32 优于 sync.Once 中的正常分配?

Tomcat6 - 如何通过 log4j 或 JULI 获取 session 参数?

google-app-engine - 今天的 App Engine 部署异常缓慢?

go - 在 Go 中忽略 printf 值

php - php页面可以访问/查看mysql日志文件吗?

python - 在导入模块之前模拟

gcloud - 为什么我的 gcloud 命令在 WSL2 中突然变得很慢

ruby-on-rails - 如何在 GCP 柔性环境 VM 上安装新软件