前提条件
创建并获取云 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 | 是 | |
secretId | String | 是 | |
secretKey | String | 是 | |
topicId | String | 是 | 日志主题的 ID 信息。 |
日志上传示例代码
以使用 Java SDK 为例,展示通过调用 SDK 完成日志上传的操作, 示例代码如下所示。
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.8DString 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/113851String secretId = System.getenv("TENCENTCLOUD_SECRET_ID");String secretKey = System.getenv("TENCENTCLOUD_SECRET_KEY");// 填入日志主题IDString 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();}}