活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      云日志服务

      云日志服务

        • 产品动态
        • 产品介绍
        • 产品定义
        • 功能特性
        • 产品优势
        • 应用场景
        • 术语解释
        • 使用限制
        • 基础资源
        • 数据读写
        • 日志采集器
        • 查询与分析
        • 操作系统
        • 与其他服务关系
        • 计费说明
        • 计费概述
        • 计费模式
        • 按需计费
        • 资源包
        • 计费项
        • 计费样例
        • 欠费说明
        • 停止计费与退订
        • 计费FAQ
        • 快速入门
        • 入门概览
        • 开通云日志服务
        • 创建日志项目与日志单元
        • 日志接入
        • 查询与分析
        • 用户指南
        • 日志管理
        • 日志管理概述
        • 资源统计
        • 管理日志项目
        • 管理日志单元
        • 超额采集配置
        • 标签管理
        • 日志接入
        • 概述
        • 主机管理
        • 主机组管理
        • 采集器安装
        • 采集器管理
        • 接入云主机-文本日志
        • 接入云容器引擎-应用日志
        • 日志结构化解析
        • 单行全文模式
        • 多行全文模式
        • 单行分隔符模式
        • 单行正则模式
        • 多行正则模式
        • JSON模式
        • Nginx分词
        • 日志主题
        • 自定义日志时间
        • API接入
        • API接入概述
        • 访问地址(Endpoint)
        • 上报日志
        • SDK接入
        • SDK接入概述
        • 云日志服务Go SDK
        • 云日志服务Java SDK
        • 云日志服务Python SDK
        • 云日志服务C++ SDK
        • 云日志服务Log4j2 SDK
        • 云日志服务Logback SDK
        • 云日志服务Logging handler SDK
        • 云日志服务C SDK
        • 云日志服务.NET SDK
        • 云日志服务PHP SDK
        • 云日志服务 node.js SDK
        • 错误码
        • 其他接入方式
        • Systemd Journal日志采集
        • 使用Syslog协议(采集器)上传日志
        • 通过对象存储导入日志
        • 通过kafka导入日志
        • Windows事件日志采集
        • Nginx日志采集
        • 云服务日志接入
        • 云服务操作日志
        • 对象存储访问日志
        • 查询与分析
        • 日志查询
        • 日志查询
        • 上下文查询
        • 查询语法
        • SQL统计分析
        • 概述
        • SQL语法
        • 交互模式构造分析场景
        • 基础分析-字段筛选&过滤
        • 基础统计-指标统计
        • 基础统计-分组统计
        • 高级统计-日志占比
        • 高级统计-TopN
        • 高级统计-时间趋势
        • 经典分析样例
        • 内置保留字段
        • 索引配置
        • 日志聚类
        • 日志可视化
        • 可视化概述
        • 统计图表
        • 概述
        • 表格
        • 柱状图
        • 时序图
        • 饼图
        • 流图
        • 数值图
        • 散点图
        • 仪表盘
        • 创建仪表盘
        • 添加过滤器
        • 添加可视化图表
        • 权限管理
        • 数据加工
        • 数据加工概述
        • 基本概念
        • 创建数据加工任务
        • 管理数据加工任务
        • 数据加工语法
        • 概述
        • 流程控制函数
        • 事件操作函数
        • 字段操作函数
        • 事件操作函数
        • 操作符函数
        • 事件检查函数
        • 转换函数
        • 算术函数
        • 字符串函数
        • 日期时间函数
        • 正则表达式函数
        • 特定结构化数据函数
        • 编码解码函数
        • 日志转储
        • 概述
        • 转储至分布式消息服务Kafka
        • 转储至对象存储ZOS
        • 日志告警
        • 概述
        • 通知组管理
        • 通知策略管理
        • 告警规则
        • 告警历史
        • 告警事件历史
        • 告警发送历史
        • 静默策略
        • 最佳实践
        • 将本地日志迁移到云日志服务
        • 优化查询性能
        • 查询Log4j日志
        • 查询分析Nginx访问日志
        • 数据加工-日志过滤
        • 数据加工-为日志空缺字段赋值
        • 数据加工-为日志不存在的字段填充默认值
        • 告警-出现关键字即触发告警
        • 告警-根据关键字出现的次数设置告警
        • 基于业务日志的运维分析
        • API参考
        • API使用说明
        • 常见问题
        • 售前常见问题
        • 日志管理
        • 云日志服务使用建议
        • 云日志服务LTS对比自建ELK,应该如何选择?
        • 如何从第三方云厂商将日志搬迁到天翼云?
        • 数据采集
        • 常见问题
        • 如何查看日志采集器的运行状态?
        • 云日志服务可以采集哪类日志?支持采集哪些文件类型?
        • 云主机采集器无法连通如何处理?
        • 采集器安装失败如何处理?
        • 如何创建云日志服务终端节点?
        • 主机接入配置完成后未采集到日志如何处理?
        • 如何查看与升级插件版本?
        • 主机组中新增云主机后,如何启动日志采集?
        • 如何获取访问密钥(AK/SK)?
        • 数据存储
        • 查询与分析
        • 常见问题
        • 为什么检索不到日志?
        • 查询语法相关问题
        • 数据加工
        • 日志转储
        • 日志告警
        • 常见问题
        • 为什么出现漏告警或者误告警?
        • 触发告警成功,但是通知失败,如何处理?
        • 相关协议
        • 产品服务协议
        • 产品服务等级协议
          无相关产品

          本页目录

          帮助中心云日志服务用户指南日志接入SDK接入云日志服务C SDK
          云日志服务C SDK
          更新时间 2025-02-17 10:38:24
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-02-17 10:38:24
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本文主要介绍云日志服务C SDK接入指南。
          1. 前言

          安装使用C SDK可以帮助开发者快速接入使用天翼云的日志服务相关功能,目前支持日志同步上传。

          2. 使用条件

          2.1. 先决条件

          用户需要具备以下条件才能够使用LTS SDK C版本:

          1、购买并订阅了天翼云的云日志服务,并创建了日志项目和日志单元,获取到相应编码(logProject、logUnit)。

          2、已获取AccessKey 和 SecretKey。

          3、已安装C 运行环境。

          2.2. 下载及安装

          下载ctyun_lts_c_sdk.zip压缩包,放到相应位置后并解压。“ctyun_lts_c_sdk”目录中sample_putlogs.c为SDK的使用示例代码。

          2.2.1. 依赖

          cmake2.8或更新版本,GCC 4.9或更新版本。以下库及其相关头文件,可在对应Linux发行版的包管理器中安装,括号中给出的是经过验证的版本。

          libcurl-devel   (7.6.1)
          openssl-devel   (1.1.1k)
          protobuf-c      (1.3.0-6.el8)
          lz4             (v1.8.3)
          json-c          (0.13.1-2.el8)
          

          对于 CentOS 安装,可用如下命令搭建依赖环境。

          yum install gcc-c++
          yum install cmake
          yum install libcurl-devel openssl-devel libuuid-devel 
          yum install lz4-devel.x86_64
          yum install protobuf-c-devel.x86_64
          yum install json-c-devel.x86_64
          

          2.2.2. 编译使用

          1、进入ctyun_lts_c_sdk目录下,里面有CMakelists.txt文件。

          2、执行build.sh,其包含以下命令。

          !#bin/bash
          
          # generate .pb-c.c  .pb-c.h  from .proto
          protoc-c --proto_path=./protoc --c_out=./ common.proto resource.proto logs.proto
          echo "generate 6 file (common|resource|logs).(pb-c.c|pb-c.h)"
          
          mkdir build
          cd build
          rm -rf *
          
          # cmake install location is ..
          cmake .. -DCMAKE_INSTALL_PREFIX=..
          make
          make install
          

          其中make 主要做的工作有:为.proto文件生成对应的.pb-c.c、.pb-c.h,以及动态链接构建出库文件libltssdk.a,存放在lib目录下。

          3、将ctyun_lts_c_sdk目录下的头文件,全部移动到您项目的对应目录下,(如果直接使用SDK 则可以不用移动)。

          4、之后你就可以在你的项目内使用SDK了,只需要引入对应的头文件即可。

          5、编译您的程序,在您目录下内编译您的程序,构建出可执行文件, 如sample_putlogs.c。

          gcc sample_putlogs.c -o sample_putlogs -I./ -L./lib/ -lltssdk -lssl -llz4 -lcurl -lprotobuf-c -lcrypto  -ljson-c
          

          或者 根据主目录中的Makefile 文件。执行以下命令,也能实现上面的构建出可执行文件。

          make sample_putlogs
          

          6、执行你的可执行文件。

          ./sample_putlogs
          

          3. SDK使用设置

          3.1. 基本使用

          使用 SDK访问云日志服务,需要设置正确的 AccessKey、SecretKey 和endpoint,所有的服务可以使用同一 key 凭证来进行访问,但不同的服务地区需要使用不同的 endpoint 进行访问,详情参考天翼云官网-SDK接入概述。在调用前SDK,需要已知以下参数:

          • 云日志服务访问地址。详情请查看访问地址(Endpoint)。
          • key凭证:accessKey和secretKey 。详情请查看如何获取访问密钥(AK/SK)。
          • 日志项目编码:logProject,在使用SDK前,需要确保您有至少一个已经存在的日志项目。
          • 日志单元编码:logUnit,在使用SDK前,需要确保日志项目中有至少一个已经存在的日志单元。
          • 待上传的日志:logItem,在使用SDK前,需要确保日志已按照特定格式组织。
          参数 参数类型 描述 是否必须
          endpoint string 域名 是
          accessKey string AccessKey,简称ak 是
          secretKey string SecretKey ,简称sk 是
          logProject string 日志项目编码 是
          logUnit string 日志单元编码 是

          示例代码:SDK使用示例

          #include <stdio.h>
          #include <stdlib.h>
          #include "log_config.h"
          #include "log_item.h"
          #include "log_client.h"
          #include "log_response.h"
          int main(void) {
          char *accessKey = "your accessKey";
              char *secretKey = "your secretKey";
              char *endpoint = "endpoint";    
              char *logProject = "log project Code";
              char *logUnit = "log unit Code";
              
              Client *client = Client_new(endpoint,accessKey,secretKey);
              if (client == NULL)
              {
                  printf("client init failed\n");
                  return 0;
              }
              int log_size=10; //send 10 logs once
              LogItems *logItems = LogItems_new(log_size);
              for (size_t i = 0; i < log_size; i++){
                  LogItem *logItem = LogItem_new("c sdk test messgae."); 
                  LogItem_add_int_content(logItem,"content_int",10);
                  LogItem_add_double_content(logItem,"content_double",3.1415);
                  LogItem_add_string_content(logItem,"content_string","info");
                  LogItem_add_string_label(logItem,"user_tag","string");
                  LogItems_add_logitem(logItems,logItem);
              }
             for (size_t i = 0; i < 10; i++){    //send 10 times
                  LogResponse *response = Client_putlogs(client,logProject,logUnit,logItems);
              if(response != NULL) {
                      printf("%d , response :statusCode:%s , message:%s ,  error:%s\n",i,response->statusCode,response->message,response->error);
                  }
                  else {
                      printf("response is null");
                  }
                  LogResponse_free(response);
              }
              LogItems_free(logItems);
              Client_free(client);
              return 0;
          }
          

          4. LTS服务代码示例

          4.1. 关于Client的操作

          4.1.1 Client_new

          此操作是使用config去初始化client,client包含的配置信息如下:

          参数 参数类型 描述 是否必须
          endpoint char* 域名 是
          accessKey char* AccessKey,简称ak 是
          secretKey char* SecretKey ,简称sk 是
          userAgent char* 使用的SDK信息标识 否
          requestTimeout int http请求超时时间,默认30s 否
          compressType int 日志压缩算法 否
          securityToken TokenInfo* 获取的token信息 否
          httpCurl CURL* 定义的CURL ,用于http请求 否

          示例代码:初始化创建Client

           Client *client = Client_new(endpoint,accessKey,secretKey);
          

          4.1.2. Client_getToken

          此操作是为client注入token信息,这一步需要使用ak和sk信息换取临时凭证TokenInfo,其中包含了token随机串和过期时间两个参数。这一步需要去访问CTIAM的api接口,调用api接口,传入ak/sk/endpoint信息,返回token信息。

          TokenInfo信息如下:

          参数 类型 描述
          token char* token 随机串
          expireTime long long 过期时间,默认30分钟

          获取TokenInfo这一步在Client 初始化时会自动调用。用户默认可以不用进行这一步操作。

          4.2. 关于Log的操作

          4.2.1. logItem_new

          此操作用于生成待上传的日志,其中LogItem

          参数 类型 描述 是否必须
          logTimestamp int64_t 时间戳,单位纳秒 是
          oriMessage char* 原始日志内容 是
          contents_key char ** contents的key,数组类型 否
          contents_types ValueType* contents 的类型:int,double,char* 否
          contents_values void ** contents的value,数组类型 否
          contents_size size_t contents key,value的 数组大小 否
          labels_key char ** labels的key,数组类型 否
          labels_types ValueType* labels的类型:int,double,char* 否
          labels_values void ** labels的value,数组类型 否
          labels_size size_t labels key,value的 数组大小 否

          ValueType格式指示的是value值的类型:

          typedef enum {
              VALUE_TYPE_STRING,
              VALUE_TYPE_INT,
              VALUE_TYPE_DOUBLE,
          } ValueType;
          

          4.2.2 LogItems_new

          LogItems是Logitems 的数组类型,里面可以包含若干条日志,client可以一次性上传多条日志,如下:

          参数 类型 描述 是否必须
          items LogItem* * LogItem 数组类型 是
          items_size size_t LogItem 数组的大小 是
          max_items size_t LogItem 数组的最大大小 是

          注意:其中Contents和Labels的key的长度不超过64字符,仅支持数字、字母、下划线、连字符(-)、点(.),且必须以字母开头。value类型最好使用字符串(string)和数字类型(int,double),其他类型建议先转为字符串类型,并且value值不能为空或空字符串。

          示例代码:组装生成10条日志

          int log_size=10;
          LogItems *logItems = LogItems_new(log_size);
          for (size_t i = 0; i < log_size; i++){
              LogItem *logItem = LogItem_new("c sdk test messgae."); 
              LogItem_add_int_content(logItem,"content_int",10);
              LogItem_add_double_content(logItem,"content_double",3.1415);
              LogItem_add_string_content(logItem,"content_string","info");
              LogItem_add_string_label(logItem,"user_tag","string");
              LogItems_add_logitem(logItems,logItem);
          }
          

          4.3. 关于日志上传的操作

          4.3.1. Client_putlogs()

          此操作用于日志上传服务,需要传入的参数有三个,分别是logProject(日志项目编码),logUnit(日志单元编码),logItems(要上传的日志)。

          参数 类型 描述 是否必须
          logProject char* 日志项目编码 是
          logUnit char* 日志单元编码 是
          logItems LogItems* 日志数据(多条) 是

          示例代码:上传日志

          LogResponse *response = Client_putlogs(client,logProject,logUnit,logItems);
          

          4.3.2. Client_putlogs_once()

          此操作用于日志上传服务,需要传入的参数有三个,分别是logProject(日志项目编码),logUnit(日志单元编码),logItem(要上传的日志)。类似与putlogs,但是putlogs_once只上传一条日志。

          参数 类型 描述 是否必须
          logProject char* 日志项目编码 是
          logUnit char* 日志单元编码 是
          logItem LogItem* 日志数据(单条) 是
          LogItem *logItem = LogItem_new("c sdk test messgae.");
          LogResponse *response = Client_putlogs(client,logProject,logUnit,logItem);
          

          4.3.3. LogResponse

          logResponse 是putlogs方法的返回响应体,如下表格式:

          参数 类型 描述 示例
          statusCode char* 返回码,取值范围:0:-正常、-1:严重错误,其他自定义
          message char* 状态描述 SUCCESS
          error char* 参考错误编码列表

          日志服务相关错误编码(部分):

          statusCode error message
          -1 LTS_8000 请求失败,请稍候重试,或提交工单反馈
          -1 LTS_8001 内容不合法,无法解析
          -1 LTS_8004 日志内容包含的日志必须小于[x] MB和[y]条
          -1 LTS_8006 日志内容解压失败
          -1 LTS_8007 Token失效,请重新获取
          -1 LTS_8009 无云日志服务产品实例,请先开通云日志服务
          -1 LTS_8010 日志项目不存在
          -1 LTS_8011 日志单元不存在
          -1 LTS_8013 在1个日志项目下,写入流量最大限制:200MB/s
          -1 LTS_8014 在1个日志项目下,写入次数最大限制:1000次/s
          -1 LTS_8015 在1个日志单元下,写入流量最大限制:100MB/s
          -1 LTS_8016 在1个日志单元下,写入次数最大限制:500次/s
          -1 LTS_18000 调用ITIAM的接口失败
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  云日志服务Logging handler SDK
          下一篇 :  云日志服务.NET SDK
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明