GCP日志记录-只读未导出到任何接收器的日志

时间:2020-01-26 10:31:49

标签: google-cloud-platform stackdriver google-cloud-stackdriver

使用GCP的Java SDK,我想只读取未配置为导出到任何接收器的日志。

当我致电com.google.cloud.logging.Logging.listLogEntries()时,我得到了所有日志,包括日志已导出到我已配置的接收器。

是否可以仅收集未配置为导出到任何接收器的日志条目?

1 个答案:

答案 0 :(得分:1)

您需要使用EntryListOption来获取过滤后的日志条目,如this page所述。

  Page<LogEntry> entries = logging.listLogEntries( 
        EntryListOption.filter("logName=projects/" + options.getProjectId() + "/logs/test-log"));
        Iterator<LogEntry> entryIterator = entries.iterateAll().iterator();
        while (entryIterator.hasNext()) {
          System.out.println(entryIterator.next());
        }

是否可以仅收集未配置为导出到任何接收器的日志条目?

为此,

  1. 您需要使用REST api或等效的java client

  2. 获取所有接收器
  3. 迭代接收器以获取每个过滤器查询

  4. 构建动态过滤器以与上述EntryListOption

  5. 一起使用