日志服务提供多语言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.exception.LogException;
import com.aliyun.openservices.log.request.PullLogsRequest;
import com.aliyun.openservices.log.response.PullLogsResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
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数量。
int shardCount = client.GetLogStore(project, logStore).GetLogStore().GetShardCount();
System.out.println(String.format("%s has %d shards", logStore, shardCount));
// 从头开始消费,获取游标。(如果是从尾部开始消费,使用Consts.CursorMode.END)
List cursors = new ArrayList(shardCount);
for (int i = 0; i < shardCount; i++) {
cursors.add(i, client.GetCursor(project, logStore, i, Consts.CursorMode.BEGIN).GetCursor());
}
// 按照Shard进行日志消费。
try{
do {
for (int i = 0; i < shardCount; i++) {
// 从每个Shard中获取日志。
PullLogsRequest request = new PullLogsRequest(project, logStore, i, 1000, cursors.get(i));
PullLogsResponse response = client.pullLogs(request);
// 日志都在日志组(LogGroup)中,按照逻辑拆分即可。
List logGroups = response.getLogGroups();
System.out.println(String.format("Get %d logGroup from logStore:%s: Shard:%d", logGroups.size(), logStore, i));
// 打印完成后,移动游标。
cursors.set(i, response.getNextCursor());
}
TimeUnit.SECONDS.sleep(3);
} while (true);
}catch (LogException e) {
System.out.println("error code :" + e.GetErrorCode());
System.out.println("error message :" + e.GetErrorMessage());
throw e;
}
}
}
消费预览
消费预览也是一种日志消费。日志服务控制台提供消费预览功能,帮助您通过控制台直接预览Logstore中的部分日志数据。
- 登录日志服务控制台。
- 在Project列表区域,单击目标Project。
- 在日志存储 > 日志库页签中,单击目标Logstore。
-
选择目标Logstore右侧的
> 消费预览。
-
在消费预览页面,选择指定预览的Shard与时间段,单击预览。
消费预览页面向您展示指定时间区间开始的10个数据包的日志数据。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/159781.html