文档

普通消费

更新时间:

日志服务提供多语言SDK,且都支持日志服务消费接口。本文介绍普通消费日志的SDK示例及控制台的消费预览功能。

SDK消费

本示例中,创建一个PullLogsDemo.java文件,并调用接口读取日志数据,完成普通消费的演示。示例如下所示。关于日志服务SDK的更多信息,请参见日志服务SDK参考

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.common.Consts;
import com.aliyun.openservices.log.common.LogGroupData;
import com.aliyun.openservices.log.common.Shard;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.PullLogsRequest;
import com.aliyun.openservices.log.response.ListShardResponse;
import com.aliyun.openservices.log.response.PullLogsResponse;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PullLogsDemo {
    // 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写
    private static final String endpoint = "cn-hangzhou.log.aliyuncs.com";
    // 本示例从环境变量中获取 AccessKey ID 和 AccessKey Secret。
    private static final String accessKeyId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
    private static final String accessKeySecret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
    // Project 名称
    private static final String project = "your_project";
    // LogStore 名称
    private static final String logStore = "your_logstore";

    public static void main(String[] args) throws Exception {
        // 创建日志服务 Client
        Client client = new Client(endpoint, accessKeyId, accessKeySecret);
        // 查询 LogStore 的 Shard
        ListShardResponse resp = client.ListShard(project, logStore);
        System.out.printf("%s has %d shards\n", logStore, resp.GetShards().size());
        Map<Integer, String> cursorMap = new HashMap<Integer, String>();
        for (Shard shard : resp.GetShards()) {
            int shardId = shard.getShardId();
            // 从头开始消费,获取游标。(如果是从尾部开始消费,使用 Consts.CursorMode.END)
            cursorMap.put(shardId, client.GetCursor(project, logStore, shardId, Consts.CursorMode.BEGIN).GetCursor());
        }
        try {
            while (true) {
                // 从每个Shard中获取日志
                for (Shard shard : resp.GetShards()) {
                    int shardId = shard.getShardId();
                    PullLogsRequest request = new PullLogsRequest(project, logStore, shardId, 1000, cursorMap.get(shardId));
                    PullLogsResponse response = client.pullLogs(request);
                    // 日志都在日志组(LogGroup)中,按照逻辑拆分即可。
                    List<LogGroupData> logGroups = response.getLogGroups();
                    System.out.printf("Get %d logGroup from logStore:%s:\tShard:%d\n", logGroups.size(), logStore, shardId);
                    // 完成处理拉取的日志后,移动游标。
                    cursorMap.put(shardId, response.getNextCursor());
                }
            }
        } catch (LogException e) {
            System.out.println("error code :" + e.GetErrorCode());
            System.out.println("error message :" + e.GetErrorMessage());
            throw e;
        }
    }
}

消费预览

消费预览也是一种日志消费。日志服务控制台提供消费预览功能,帮助您通过控制台直接预览Logstore中的部分日志数据。

  1. 登录日志服务控制台

  2. 在Project列表区域,单击目标Project。

  3. 日志存储 > 日志库页签中,单击目标Logstore。

  4. 选择目标Logstore右侧的日志预览 > 消费预览

  5. 消费预览页面,选择指定预览的Shard与时间段,单击预览

    消费预览页面向您展示指定时间区间开始的10个数据包的日志数据。xiaofei

  • 本页导读 (1)
文档反馈