Java SDK 上传日志

最近更新时间:2025-01-08 17:30:22

我的收藏
本文介绍如何快速使用日志服务的 Java SDK 实现日志上传的操作。更多 SDK 使用的详细内容,可见代码仓库:tencentcloud-cls-sdk-java

前提条件

创建并获取云 API 密钥信息 secretId 和 secretKey,密钥信息获取请前往 API 密钥管理
并请确保密钥关联的账号具有相应的 SDK 上传日志权限

准备开发环境

请参见 Java 官方网站 下载并安装 Java 开发环境。
日志服务 Java SDK 支持 JRE 6.0及以上的 Java 运行环境。您可以执行以下命令查看当前 Java 版本。
java -version

安装 Java SDK

推荐通过在 Maven 项目中加入依赖项的方式引入 Java SDK。
在 Maven 工程中使用日志服务 Java SDK,只需在 pom.xml 中加入相应依赖即可,Maven 项目管理工具会自动下载相关 JAR 包。
<dependency>
<groupId>com.tencentcloudapi.cls</groupId>
<artifactId>tencentcloud-cls-sdk-java</artifactId>
<version>1.0.15</version>
</dependency>

请求参数

变量
类型
是否必填
说明
endpoint
String
域名信息,填写请参见 可用地域 中 API 上传日志 Tab 中的域名。
secretId
String
云 API 密钥信息,密钥信息获取请前往 API 密钥管理。并请确保密钥关联的账号具有相应的 SDK 上传日志权限
secretKey
String
云 API 密钥信息,密钥信息获取请前往 API 密钥管理。并请确保密钥关联的账号具有相应的 SDK 上传日志权限
topicId
String
日志主题的 ID 信息。

日志上传示例代码

以使用 Java SDK 为例,展示通过调用 SDK 完成日志上传的操作, 示例代码如下所示。
不建议将云 API 密钥信息明文存储至工程代码中,可通过环境变量动态获取云 API 密钥信息,具体操作,请参见 配置环境变量
import com.tencentcloudapi.cls.sdk.AsyncProducerClient;
import com.tencentcloudapi.cls.sdk.AsyncProducerConfig;
import com.tencentcloudapi.cls.sdk.LogItem;
import com.tencentcloudapi.cls.sdk.LogContent;
import com.tencentcloudapi.cls.sdk.NetworkUtils;

import java.util.ArrayList;
import java.util.List;

public class TencentClsDemo {
public static void main(String[] args) {
// 填入域名信息,请参见链接中 API 上传日志 Tab 中的域名:https://cloud.tencent.com/document/product/614/18940#.E5.9F.9F.E5.90.8D
String endpoint = "ap-xxxxxx.cls.tencentcs.com";
// 填入云API密钥信息。密钥信息获取请前往:https://console.cloud.tencent.com/cam/capi
// 并请确保密钥关联的账号具有相应的日志上传权限,权限配置指引:https://cloud.tencent.com/document/product/614/68374#.E4.BD.BF.E7.94.A8-api-.E4.B8.8A.E4.BC.A0.E6.95.B0.E6.8D.AE
// 本示例从环境变量中获取,环境变量配置指引:https://cloud.tencent.com/document/product/614/113851
String secretId = System.getenv("TENCENTCLOUD_SECRET_ID");
String secretKey = System.getenv("TENCENTCLOUD_SECRET_KEY");
// 填入日志主题ID
String topicId = "5912XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

final AsyncProducerConfig config = new AsyncProducerConfig(endpoint, secretId, secretKey, NetworkUtils.getLocalMachineIP());

// 构建一个客户端实例
final AsyncProducerClient client = new AsyncProducerClient(config);

for (int i = 0; i < 10000; ++i) {
List<LogItem> logItems = new ArrayList<>();
int ts = (int) (System.currentTimeMillis() / 1000);
LogItem logItem = new LogItem(ts);
logItem.PushBack(new LogContent("__CONTENT__", "hello world"));
logItem.PushBack(new LogContent("city", "guangXXXXX"));
logItem.PushBack(new LogContent("logNo", Integer.toString(i)));
logItem.PushBack(new LogContent("__PKG_LOGID__", (String.valueOf(System.currentTimeMillis()))));
logItems.add(logItem);
client.putLogs(topicId, logItems, result -> System.out.println(result.toString()));
}
client.close();
}
}

结语

通过以上步骤,您可以快速使用腾讯云 CLS 的 Java SDK 完成日志的上传操作。如遇到任何问题,请 联系我们 获取帮助。