产品动态
公告
# 安装编译工具和依赖(若未安装 C++可以使用)sudo yum install gcc gcc-c++ automake autoconf libtool makesudo yum install cmake
# 手动下载 protobufwget https://github.com/protocolbuffers/protobuf/archive/v2.6.1.tar.gz# 解压源代码tar -xzf v2.6.1.tar.gz# 进入解压后的目录cd protobuf-2.6.1# 生成配置文件,若执行该步骤一直不动 or 时间超时错误,请参考下方【常见报错处理】./autogen.sh# 配置安装./configure#编译,这一步可能有点久请耐心等待makesudo make installsudo ldconfig
# 下载日志服务 SDKgit clone https://github.com/TencentCloud/tencentcloud-cls-sdk-cpp.git# 进入目录cd tencentcloud-cls-sdk-cpp# 安装依赖sudo yum install boost-develsudo yum install openssl-develsudo yum install libcurl-devel# 生成构建文件cmake .# 编译 SDKmakesudo make install
sample.cpp 为例,代码解析见下方。实际使用时需替换代码中的密钥等信息方可运行。# 编译示例代码g++ -o sample ./cls/sample.cpp -std=c++11 -O2 -L/root/tencentcloud-cls-sdk-cpp-main -lclssdk -lcurl -lprotobuf -lssl -lcrypto -lboost_thread
error while.....错,可参见 常见报错处理。./sample
statusCode:200 requestId: content: bodyBytes:49 header:key:Content-Length value:0 header:key:Date value:Wed, 20 Nov 2024 03:37:25 GMT header:key:X-Cls-Requestid value:e7329d6d-9a48-4091-bb0c-5cea8d1c6f48 header:key:X-Cls-Trace-Id value: header:key:x-cls-requestid value:
变量 | 类型 | 是否必填 | 说明 |
endpoint | String | 是 | |
accesskeyid | String | 是 | |
accessKeysecret | String | 是 | |
topic | String | 是 | 日志主题的 ID 信息。 |
#include "cls/producerclient.h"#include "cls/common.h"#include "cls/cls_logs.pb.h"#include "cls/logproducerconfig.pb.h"#include <string>#include <iostream>#include <unistd.h>#include <cstdlib>#include "cls/result.h"#include "cls/error.h"using namespace tencent_log_sdk_cpp_v2;using namespace std;class UserResult : public CallBack{public:UserResult() = default;~UserResult() = default;void Success(PostLogStoreLogsResponse result) override { std::cout << result.Printf() << std::endl; }void Fail(PostLogStoreLogsResponse result) override{std::cout << result.Printf() << std::endl;// std::cout<<result.loggroup_.ShortDebugString().c_str()<<std::endl;}};int main(){cls_config::LogProducerConfig config;// 填入域名信息,填写指引:https://www.tencentcloud.com/document/product/614/18940?from_cn_redirect=1#.E5.9F.9F.E5.90.8D,请参见链接中 API 上传日志 Tab 中的域名config.set_endpoint("ap-xxxxxxx.cls.tencentcs.com");// 填入云API密钥信息。密钥信息获取请前往:https://console.tencentcloud.com/cam/capi// 并请确保密钥关联的账号具有相应的日志上传权限,权限配置指引:https://www.tencentcloud.com/document/product/614/68374?from_cn_redirect=1#.E4.BD.BF.E7.94.A8-api-.E4.B8.8A.E4.BC.A0.E6.95.B0.E6.8D.AE// 本示例从环境变量中获取,环境变量配置指引:https://www.tencentcloud.com/document/product/614/113851?from_cn_redirect=1config.set_acceskeyid(getenv("TENCENTCLOUD_SECRET_ID"));config.set_accesskeysecret(getenv("TENCENTCLOUD_SECRET_KEY"));// 设置要上传日志的主题 ID,替换为您的 Topic IDstd::string topic = "xxxxxxxxxxxxxxxxxxxxxxxxx";auto client = std::make_shared<ProducerClient>(config);auto callback = std::make_shared<UserResult>();client->Start();// 创建日志对象cls::Log log;// 设置当前时间为日志时间log.set_time(time(NULL));// 构造日志数据内容auto content = log.add_contents();// 设置日志内容的键值信息content->set_key("content");content->set_value("this my test");// 发送日志并获取返回结果PostLogStoreLogsResponse ret = client->PostLogStoreLogs(topic, log, callback);if(ret.statusCode != 0){cout<<ret.content<<endl;}client->LogProducerEnvDestroy();return 0;}
# 下载文件,解压并改名(适应执行代码)wget https://github.com/google/googletest/archive/release-1.5.0.tar.gztar -xzf googletest-release-1.5.0.tar.gzmv googletest-release-1.5.0 gtest
./autogen.sh 即可。# 执行命令./autogen.sh
./sample 时候报错./sample: error while loading shared libraries: libprotobuf.so.9: cannot open shared object file: No such file or directory
protobuf.so 文件的位置,执行以下命令:whereis libprotobuf.so.9
cat /etc/ld.so.conf 查看是否有第一步的路径。
ld.so.conf。以上图为例,则需要把 /usr/local/lib 添加到 ld.so.conf。ldconfig
文档反馈