搜索本产品文档关键词
日志记录LogRecord操作
所有文档
menu

日志服务 BLS

日志记录LogRecord操作

推送日志PushLogRecord

支持批量推送日志记录到 BLS 平台,日志记录的格式可以是 TEXT,也可以是 JSON 格式。如果是 TEXT,则不对日志进行解析;如果是 JSON 格式,可以自动发现 JSON 字段(仅支持首层字段发现,暂不支持嵌套类型字段的自动发现)。

如果既想上传日志原文,又想上传解析出的具体字段,可以使用 JSON 格式进行上传,并在 JSON 中包含日志原文(使用 @raw 作为key,日志原文作为 value)。 BLS 解析到 @raw 的时候,会将其内容作为日志原文处理。

通过以下代码,可以批量推送JSON日志记录到指定日志集的指定日志流中。

Java
1import com.baidubce.auth.DefaultBceCredentials;
2import com.baidubce.services.bls.BlsClient;
3import com.baidubce.services.bls.BlsClientConfiguration;
4import com.baidubce.services.bls.model.logrecord.LogRecord;
5import com.baidubce.services.bls.model.logrecord.LogType;
6import com.baidubce.services.bls.model.logrecord.PushLogRecordRequest;
7
8import java.util.ArrayList;
9import java.util.List;
10
11public class ExamplePushLogRecord {
12    public static void main(String[] args) {
13        String ak = "Your Ak";
14        String sk = "Your Sk";
15        String endpoint = "bls-log.bj.baidubce.com";
16
17        BlsClientConfiguration config = new BlsClientConfiguration();
18        config.setEndpoint(endpoint);
19        config.setCredentials(new DefaultBceCredentials(ak, sk));
20        // 创建BLS客户端
21        BlsClient client = new BlsClient(config);
22
23        PushLogRecordRequest request = new PushLogRecordRequest();
24        List<LogRecord> logRecords = new ArrayList<>();
25        logRecords.add(new LogRecord(1742281309000L, "{\"key1\":\"value\", \"key2\": \"value2\" }"));
26        // 设置目标项目组名称
27        request.setProject("default");
28        // 设置目标日志集名字
29        request.setLogStoreName("logstorename");
30        // 设置日志格式为JSON
31        request.setType(LogType.JSON);
32        // 设置日志
33        request.setLogRecords(logRecords);
34        // 执行推送日志操作
35        client.PushLogRecord(request);
36    }
37}

获取日志记录PullLogRecord

通过以下代码,查看指定日志流中的日志记录,您可以获取最近的日志记录或使用时间范围进行过滤

Java
1package com.baidubce.examples.bls;
2
3import com.baidubce.auth.DefaultBceCredentials;
4import com.baidubce.services.bls.BlsClient;
5import com.baidubce.services.bls.BlsClientConfiguration;
6import com.baidubce.services.bls.model.logrecord.*;
7
8public class ExamplePullLogRecord {
9    public static void main(String[] args) {
10        String ak = "Your Ak";
11        String sk = "Your Sk";
12        String endpoint = "bls-log.bj.baidubce.com";
13
14        BlsClientConfiguration config = new BlsClientConfiguration();
15        config.setEndpoint(endpoint);
16        config.setCredentials(new DefaultBceCredentials(ak, sk));
17        // 创建BLS客户端
18        BlsClient client = new BlsClient(config);
19
20        PullLogRecordRequest request = new PullLogRecordRequest();
21        // 设置目标项目组名称
22        request.setProject("default");
23        // 设置目标日志集名字
24        request.setLogStoreName("logstorename");
25        // 设置日志查询开始时间
26        request.setStartDateTime("2025-03-17T02:04:05Z");
27        // 设置日志查询结束时间
28        request.setEndDateTime("2025-03-17T15:04:05Z");
29        // 设置返回的最大条目数
30        request.setLimit(10);
31        // 执行日志查询操作
32        PullLogRecordResponse resp = client.pullLogRecord(request);
33        System.out.println(resp);
34    }
35}

检索分析日志QueryLogRecord

用户通过提交 Query 检索或分析指定日志集中的数据,每次只能查询一个日志集的内容。

Query 语句支持三种格式,形如:

  • match 检索语句:需要开启全文索引或者字段索引,可以根据条件检索日志内容,例如 match method:GET and status >= 400
  • SQL语句:执行 SQL 语句,例如 select * limit 10
  • match 检索语句 | SQL 语句:需要开启全文索引或者字段索引,在符合检索条件的结果集上执行 SQL 语句,检索语句和 SQL 语句通过竖线分隔,例如 match method:GET and status >= 400 | select host, count(*) group by host

查询相关限制如下:

  • 每个账户支持最多的查询并发数是 15 个
  • 限制返回的结果集大小不超过 1MB 或 1000 条记录。

检索语法请参考 检索语法

SQL 语句中可以不包括 from 子句,语法详情可以参考 SQL 语法

通过以下代码,您可以在指定日志集中查询满足条件的日志记录。

Java
1import com.baidubce.auth.DefaultBceCredentials;
2import com.baidubce.services.bls.BlsClient;
3import com.baidubce.services.bls.BlsClientConfiguration;
4import com.baidubce.services.bls.model.logrecord.QueryLogRecordRequest;
5import com.baidubce.services.bls.model.logrecord.QueryLogRecordResponse;
6
7public class ExampleQueryLogRecord {
8    public static void main(String[] args) {
9        String ak = "Your Ak";
10        String sk = "Your Sk";
11        String endpoint = "bls-log.bj.baidubce.com";
12
13        BlsClientConfiguration config = new BlsClientConfiguration();
14        config.setEndpoint(endpoint);
15        config.setCredentials(new DefaultBceCredentials(ak, sk));
16        // 创建BLS客户端
17        BlsClient client = new BlsClient(config);
18
19        QueryLogRecordRequest request = new QueryLogRecordRequest();
20        // 设置目标项目组名称
21        request.setProject("default");
22        // 设置目标日志集名字
23        request.setLogStoreName("logstorename");
24        // 设置日志查询开始时间
25        request.setStartDateTime("2025-03-17T02:04:05Z");
26        // 设置日志查询结束时间
27        request.setEndDateTime("2025-03-17T15:04:05Z");
28        // 设置检索语句
29        request.setQuery("match level:info");
30        // 执行日志检索操作
31        QueryLogRecordResponse response = client.queryLogRecord(request);
32        System.out.println(response);
33    }
34}

直方图接口QueryLogHistogram

用户通过提交 Query 检索语句,分析数据量统计直方图,每次只能查询一个日志集的内容。

Query 语句支持三种格式,形如:

  • match 检索语句:根据检索条件,返回满足检索条件的日志直方图统计
  • SQL 语句:返回全部日志的直方图统计
  • match 检索语句 | SQL 语句:根据检索条件,返回满足检索条件的日志直方图统计 查询相关限制如下:

    • 日志集必须开启索引,若未开启索引,直方图查询返回报错
    • 查询时间上限60秒,超过60秒未统计出结果会返回报错

检索语法请参考 检索语法

通过以下代码,您可以在指定日志集中查询满足条件的日志。

Java
1import com.baidubce.auth.DefaultBceCredentials;
2import com.baidubce.services.bls.BlsClient;
3import com.baidubce.services.bls.BlsClientConfiguration;
4import com.baidubce.services.bls.model.logrecord.QueryLogHistogramRequest;
5import com.baidubce.services.bls.model.logrecord.QueryLogHistogramResponse;
6
7public class ExampleQueryLogHistogram {
8    public static void main(String[] args) {
9        String ak = "Your Ak";
10        String sk = "Your Sk";
11        String endpoint = "bls-log.bj.baidubce.com";
12
13        BlsClientConfiguration config = new BlsClientConfiguration();
14        config.setEndpoint(endpoint);
15        config.setCredentials(new DefaultBceCredentials(ak, sk));
16        // 创建BLS客户端
17        BlsClient client = new BlsClient(config);
18
19        QueryLogHistogramRequest request = new QueryLogHistogramRequest();
20        // 设置目标项目组名称
21        request.setProject("default");
22        // 设置目标日志集名字
23        request.setLogStoreName("logstorename");
24        // 设置日志查询开始时间
25        request.setStartDateTime("2025-03-17T02:04:05Z");
26        // 设置日志查询结束时间
27        request.setEndDateTime("2025-03-17T15:04:05Z");
28        // 设置检索语句
29        request.setQuery("match level:info");
30        // 执行日志直方图分析操作
31        QueryLogHistogramResponse response = client.queryLogHistogram(request);
32        System.out.println(response);
33    }
34}
上一篇
安装SDK工具包
下一篇
Android SDK