云日志服务鸿蒙SDK
云日志服务鸿蒙SDK提供了ArkTS语言上报日志的一系列方法,方便用户直接使用编码方式上报日志到云日志服务后台。
当前仅支持华北-北京四、华东-上海一、华南-广州的白名单用户,如有需要请提工单申请。
传输协议
HTTPS
使用前提
- 参考注册华为账号并开通华为云中操作,完成注册。
版本更新说明
SDK如何处理个人信息请参考华为云日志服务移动端日志采集SDK隐私声明。
您集成和使用我们的SDK时需要遵从个人信息保护基本要求,详情请参考华为云日志服务移动端日志采集SDK开发者合规指南。
安装鸿蒙 SDK
- 集成接入SDK。
SDK包使用语言为ArkTS,只能在ArkTS文件中引入。
- 鸿蒙仓库集成。
- 在终端中运行安装命令。
ohpm install lts-harmony-sdk
- 在app/oh-package.json5中添加依赖。
dependencies { ... "lts-harmony-sdk": "0.0.3" ... }
- 在终端中运行以下命令使能SDK。
ohpm install
- 在终端中运行安装命令。
- 手动集成。
- 下载日志SDK包。
- 下载后解压到指定目录。注:直接解压即可,不需要额外操作。
- 将解压后的har静态库文件添加到您的项目工程中。
- 在app/oh-package.json5中添加依赖。
dependencies { ... "lts-harmony-sdk": "file:../plugin/LTS_SDK/default/lts-harmony-sdk.har" // HAR包存放地址 ... }
- 在终端中运行以下命令使能SDK。
ohpm install
- 鸿蒙仓库集成。
- 初始化,详细参数请参考表4。
LTSSDK支持多实例日志上报机制,根据不同配置创建实例进行上报。
- 添加依赖
import { LTSSDK, ConfigParam } from 'lts-harmony-sdk';
- ArkTS:初始化代码示例。
// LTS参数配置 const config:ConfigParam = { // 必填参数 region: string, // 上报region projectId: string, // 华为云项目ID groupId: string, // LTS日志组ID streamId: string, // LTS日志流ID accessKey: string, // 华为云访问密钥 secretKey: string, // 华为云秘密访问密钥 // 选填参数 url: string, // 上报地址 cacheThreshold: number, // 上报条数阈值 timeInterval: number, // 上报时间阈值 isReportBackground: boolean // 是否开启后台上报 }; // 获取ApplicationContext let applicationContext = this.context.getApplicationContext(); // LTS初始化方法 const ltssdk = new LTSSDK(applicationContext, config)
- 添加依赖
- 上报日志,LTS提供两种上报日志的方法。
表2 两种上报日志的方法 Method
Description
report(content, labels)
上报日志:先存入本地数据库,根据配置中设定的策略实施上报。
reportImmediately(content, labels)
立即上报日志。
表3 Parameters参数 Name
Description
content
日志内容,支持字典和字典数组;键值对最多300个;content转JSON字符串最大支持长度为30*1024,超出部分被截断。
labels
日志标签。支持字典或空值;最外层键值对最多50个;最外层key最大长度为64,支持字母、数字和下划线组合,首字符须是字母;字典转JSON字符串最大支持长度为30720,超出则该条日志无法上报。
ArkTS代码示例如下:
const ltssdk = new LTSSDK(applicationContext, config) let fruit = { "fruit_1": "apple", "fruit_2": "pear", "fruit_3": "banana" }; let food = { "food_1": "rice" }; let labels = { "date":"2023-10-01"}; let contents = [food, fruit]; ltssdk.report(food); // 缓存上报单条 不带标签 ltssdk.report(food, labels); // 缓存上报单条 带标签 ltssdk.reportImmediately(food); // 立即上报单条 不带标签 ltssdk.reportImmediately(food, labels); // 立即上报单条 带标签 ltssdk.report(contents); // 缓存上报多条 不带标签 ltssdk.report(contents, labels); // 缓存上报多条 带标签 ltssdk.reportImmediately(contents); // 立即上报多条 不带标签 ltssdk.reportImmediately(contents, labels); // 立即上报多条 带标签
配置参数说明
参数名称 |
类型 |
是否必填 |
默认值 |
描述 |
---|---|---|---|---|
projectId |
string |
必填 |
- |
华为云账号的项目ID。 |
groupId |
string |
必填 |
- |
LTS的日志组ID。 |
streamId |
string |
必填 |
- |
LTS的日志流ID。 |
accessKey |
string |
必填 |
- |
华为云账号的访问密钥,简称AK。注意:认证用的华为云账号AK、SK硬编码到代码中或者明文存储都有很大的安全风险,建议密文存放,使用时解密,确保安全。 |
secretKey |
string |
必填 |
- |
华为云账号的秘密访问密钥,简称SK。注意:认证用的华为云账号AK、SK硬编码到代码中或者明文存储都有很大的安全风险,建议密文存放,使用时解密,确保安全。 |
region |
string |
必填 |
- |
LTS的服务区域。 |
url |
string |
选填 |
null |
用于上报的公网地址域名,如未设置,将根据region自动生成链接,格式如下:https://lts-access.{region}.myhuaweicloud.com |
cacheThreshold |
number |
选填 |
200条 |
当本地数据库日志存储条数达到该值会触发上报,取值范围为30-1000条。 |
timeInterval |
number |
选填 |
3秒 |
定时器每隔该值会触发上报,取值范围为1-1800秒。 |
isReportBackground |
boolean |
选填 |
true |
是否开启APP切入后台时上报功能。 |
上报日志策略说明
LTSSDK支持三种日志上报策略:阈值上报、定时上报、应用切后台时上报,根据场景选择合适的值配置cacheThreshold、timeInterval、isReportBackground等参数。
权限配置
LTS-SDK 需要鸿蒙的网络权限,如果没有配置,请将下面内容的写入APP的module.json5 文件中:
{ "module": { ... "requestPermissions":[ ... { "name": "ohos.permission.INTERNET" }, { "name": "ohos.permission.GET_NETWORK_INFO" } ], ... }
接入调试
在开发过程中可以启用调试模式,借助控制台日志实时查看上报日志的记录情况,观察具体结果并根据需要进行调整。
需要通过调用LTSSDK的静态方法来修改,SDK支持Debug、Info、Warning 、 Error 和 Off 5个级别的 默认为静默输出(Off)。5个级别分别对应的参数:LogLevel.DEBUG、LogLevel.INFO、LogLevel.WARNING、LogLevel.ERROR、LogLevel.OFF。代码示例如下:
ltssdk.setLogLevel(LogLevel.DEBUG)
参数获取方式
- 区域表
表5 区域表 区域名称
RegionName
华北-北京四
cn-north-4
华东-上海一
cn-east-3
华南-广州
cn-south-1
- 日志组ID:登录云日志服务页面,选择“日志管理”,鼠标悬浮在日志组名称上,可查看日志组名称和日志组ID。
- 日志流ID:单击“日志组名称”可查看日志流列表,鼠标悬浮在日志流名称上,可查看日志流名称和日志流ID。