更新时间:2024-10-21 GMT+08:00
分享

云日志服务鸿蒙SDK

云日志服务鸿蒙SDK提供了ArkTS语言上报日志的一系列方法,方便用户直接使用编码方式上报日志到云日志服务后台。

当前仅支持华北-北京四、华东-上海一、华南-广州的白名单用户,如有需要请提工单申请。

传输协议

HTTPS

使用前提

  • 确认云日志服务的区域,请您根据所在区域,选择RegionName。
  • 获取华为云账号的项目ID(project id),步骤参考:请参见“我的凭证 > API凭证”。
  • 获取需要上报到LTS的日志组ID日志流ID
  • 日志流需要开启匿名写入功能。详细操作请参考管理日志流

版本更新说明

SDK如何处理个人信息请参考华为云日志服务移动端日志采集SDK隐私声明

您集成和使用我们的SDK时需要遵从个人信息保护基本要求,详情请参考华为云日志服务移动端日志采集SDK开发者合规指南

表1 版本更新说明

版本号

下载地址

更新说明

系统

0.0.3

单击下载

将SDK写入和上报日志逻辑迁移到子线程,添加代码混淆与单元测试用例。

HarmonyOS NEXT及以上。

0.0.2

单击下载

将日志状态存入数据库。

HarmonyOS NEXT及以上。

0.0.1

单击下载

LTS鸿蒙SDK上线,支持缓存上报、立即上报等功能。

HarmonyOS NEXT及以上。

安装鸿蒙 SDK

  1. 集成接入SDK。

    SDK包使用语言为ArkTS,只能在ArkTS文件中引入。

    1. 鸿蒙仓库集成。
      • 在终端中运行安装命令。
        ohpm install lts-harmony-sdk
      • 在app/oh-package.json5中添加依赖。
        dependencies { 
             ... 
             "lts-harmony-sdk": "0.0.3" 
             ... 
         } 
      • 在终端中运行以下命令使能SDK。
         ohpm install
    2. 手动集成。
      • 下载日志SDK包。
      • 下载后解压到指定目录。注:直接解压即可,不需要额外操作。
      • 将解压后的har静态库文件添加到您的项目工程中。
      • 在app/oh-package.json5中添加依赖。
        dependencies { 
             ... 
             "lts-harmony-sdk": "file:../plugin/LTS_SDK/default/lts-harmony-sdk.har" // HAR包存放地址
             ... 
         }
      • 在终端中运行以下命令使能SDK。
        ohpm install

  2. 初始化,详细参数请参考表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)

  3. 上报日志,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);  // 立即上报多条 带标签

配置参数说明

表4 初始化参数说明

参数名称

类型

是否必填

默认值

描述

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

相关文档