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

GCP Logging - read only logs that are not exported to any sink

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

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

有什么方法可以只收集未配置为导出到任何接收器的日志条目?

您需要使用 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());
        }

Any way to collect only log entries that are not configured to be exported to any sink?

为了实现这一点,

  1. 您需要使用 REST api or equivalent java client

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

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

  5. 一起使用