
# 云日志服务微信小程序SDK
云日志服务微信小程序SDK提供了微信小程序上报日志的一系列方法，如果您需要收集和分析用户在网站上的信息，例如用户的浏览器、浏览行为记录、终端设备记录，设备异常记录，网络使用记录等，可以直接使用微信小程序SDK上报日志到LTS。
使用微信小程序SDK上报日志到LTS的场景下，需要开启日志流的匿名写入功能，开启后上报日志没有经过有效鉴权，可能产生脏数据。详细操作请参考[管理日志流](https://support.huaweicloud.com/usermanual-lts/lts_04_0004.html)。
![](https://support.huaweicloud.com/usermanual-lts/public_sys-resources/note_3.0-zh-cn.png)
微信小程序SDK支持跨云/本地上报日志，当前仅支持华北-北京四、华东-上海一、华南-广州的白名单用户，如有需要请[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)申请。
#### 传输协议
HTTPS
#### 使用前提
- 参考[注册华为账号并开通华为云](https://support.huaweicloud.com/usermanual-account/account_id_001.html)中操作，完成注册。

- 确认云日志服务的区域，请您根据所在区域，选择RegionName。
- 获取华为云账号的项目ID（project id），步骤请参见[API凭证](https://support.huaweicloud.com/usermanual-ca/ca_01_0002.html)。
- 获取需要上报到LTS的[日志组ID](https://support.huaweicloud.com/usermanual-lts/lts_07_0055.html#lts_07_0055__zh-cn_topic_0000001817927816_zh-cn_topic_0000001672281857_li16213910519)和[日志流ID](https://support.huaweicloud.com/usermanual-lts/lts_07_0055.html#lts_07_0055__zh-cn_topic_0000001817927816_zh-cn_topic_0000001672281857_li521209751)。
 
#### 版本更新说明
表1版本更新说明 
| 版本号    | 更新说明                                                                                                                                                                                                                       |
|:---|:---|
| 1.0.24 | 支持更多region：华东-上海一、华南-广州。                                                                                                                                                                                                   |
| 1.0.23 | 新增支持快应用上报。                                                                                                                                                                                                                 |
| 1.0.21 | - 废弃config方法，优先使用new SDK创建一个新的实例。  - 去除代码中对三方包的依赖和存在的中文符号。   |
| 1.0.19 | 修改时间阈值的范围从1-60改为1-1800，其默认值从30改为3。                                                                                                                                                                                         |
| 1.0.18 | - 调整日志级别等级。  - 支持labels嵌套。                                          |
| 1.0.15 | 小程序支持创建多个日志流同时上报日志到LTS。                                                                                                                                                                                                    |
   
#### 使用说明
为确保微信小程序日志上报正常，需将上报地址添加到微信开发者平台域名列表，上报地址请参见[配置参数说明]。
#### 安装SDK
在小程序的根目录下通过运行"npm i lts-mini-sdk"命令，安装SDK软件包。
您可以在[开源仓地址](https://www.npmjs.com/package/lts-mini-sdk)下载最新的SDK。可以将软件包中的app.js复制到项目文件目录下使用或者项目开启npm，使用node_module下的文件。
#### 集成SDK
- 采用npm方式集成SDK。
  1. 确保项目有"package.json"文件，如果项目中没有"package.json"文件，可以在项目的根目录下，使用以下命令来创建：npm init。
  
  2. 运行安装SDK的命令，安装SDK软件包。
  
  3. 单击开发者工具菜单栏中的"工具 \> 构建npm"，构建当前工程的npm库文件。
     图1构建npm   
     ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000001826867764.png) 
   
- 采用文件引入方式集成SDK。
  1. 运行安装SDK的命令，安装SDK软件包。
  
  2. 找到SDK文件夹中的app.js文件"node_modules \> lts-mini-sdk \> app.js"，将app.js文件从node_module复制到根路径并改名。
     图2app.js文件   
     ![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000001827027580.png "点击放大") 
   
 
#### 示例代码
```
const miniSDK = require('lts-mini-sdk').default;
// import miniSDK from 'lts-mini-sdk';
App({
    onLaunch(options) {
        // 初始化
        const wxmini = new miniSDK({
            // 上报region
            region: string,
            // 项目ID
            projectId: string,
            // 上报地址
            url: string,  
            // LTS日志组ID
            groupId: string,
            // LTS日志流ID
            streamId: string,
            // 调试日志等级
            debug: string,
            // 当前小程序所属平台
            platform: string,
            // 上报条数阈值
            cacheThreshold: number,
            // 上报时间阈值
            timeInterval: number,
        });
        // 立即上报单条带标签
        wxmini.reportImmediately({ 'name': 'xiaoming', 'age': 18 }, { 'key': 'value' });
        // 立即上报单条 不带标签
        wxmini.reportImmediately([{   key: 'value',   number: 1,   array: [],   json: {     json: 'json'   } }, { 'key': 'value' }]);
        // 缓存上报多条 带标签
        wxmini.report([{ 'name': 'xiaohong', 'age': 18 }, { 'name': 'xiaobai', 'age': 20 }], { 'key': 'value' });
        // 缓存上报多条 不带标签
        wxmini.report([{ 'name': 'xiaohong', 'age': 18 }, {   key: 'value',   number: 1,   array: [],   json: {     json: 'json'   } }]);
        // 缓存上报多条 带多个标签（最多50个）
        wxmini.report([{ 'name': 'xiaohong', 'name': 'xiaolan' }], {'version': '1.0.0', 'render': 'mini', 'link': '/', from: 'wx'});
    }
});
```
#### 配置参数说明
- 配置参数说明
   表2配置参数说明 
  | 字段             | 类型     | 是否必填 | 默认值   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |:---|:---|:---|:---|:---|
  | region         | string | 必填   | -     | 上报LTS所处的region。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | projectId      | string | 必填   | -     | 账号的项目ID，128个字符上限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | groupId        | string | 必填   | -     | LTS日志组ID，128个字符上限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | streamId       | string | 必填   | -     | LTS日志流ID，128个字符上限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | url            | string | 选填   | -     | 用于上报的公网地址域名，支持带端口号，比如：https://lts-access.cn-north-4.myhuaweicloud.com:443；如未设置url，将根据region自动生成链接，格式如下：https://lts-access.{region}.myhuaweicloud.com。该域名地址需要在微信小程序后台开发设置服务器域名处（具体操作界面以小程序官网为准）注册为合法域名，128个字符上限。 - 使用SDK在跨云或本地上报日志时，端口使用443。  - 使用华为云主机在华为云内网上报日志时，端口使用8102。   |
  | debug          | string | 选填   | OFF   | 控制台调试信息的输出等级，有OFF、ERROR、WARN、INFO、DEBUG五个等级，填入无效值会默认为OFF，最高等级为DEBUG，层级往下递减。值为true时开启DEBUG等级的日志，值为false时日志等级为OFF。                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | cacheThreshold | int    | 选填   | 30    | 默认30条上报条数阈值，当缓存到达阈值时上报缓存中的数据 30 \<= cacheThreshold \<= 1000                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | timeInterval   | number | 选填   | 3     | 默认3s 上报阈值时间，当达到阈值时间上报缓存中的数据 1 \<= timeInterval \<= 1800                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | platform       | string | 选填   | baidu | 支持上报的平台。目前支持以下平台：baidu：百度小程序，wx：微信小程序，dd：钉钉小程序，my：支付宝小程序，quick：快应用                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
     
  
- 日志上报report方法参数说明
  表3report方法参数说明 
  | 字段      | 类型                        | 是否必填 | 默认值 | 描述                                                                                                                                                                                                                                                                                                     |
  |:---|:---|:---|:---|:---|
  | content | Object \| Array\<Object\> | 必填   | -   | 需要上报的日志对象或者对象数组，每个对象（Object）最多允许300个键值对，且转成JSON字符串最大支持长度1024\*30个字符，超出部分将被截断。 array\<Object\>：数组中的每条Object数据最多300个键值对，转成JSON字符串最大支持长度1024\*30个字节，超出部分将被截断。 用户的日志字段名称不允许包含双下划线（__）。 |
  | labels  | Object                    | 选填   | 空   | 日志标签，最外层键值对50个以内，最外层key最大长度为64个字符，最外层key值只能由字母开头，字母、数字或下划线组成，标签转成JSON字符串最大支持长度1024\*30个字符，超出限制将不上报此条信息。 用户的日志字段名称不允许包含双下划线（__）。                                                                                   |
     
  
- 日志立即上报reportImmediately方法参数说明
  表4reportImmediately方法参数说明 
  | 字段      | 类型                        | 是否必填 | 默认值 | 描述                                                                                                                                                                                                                                                                                                                         |
  |:---|:---|:---|:---|:---|
  | content | Object \| Array\<Object\> | 选填   | -   | 立即上报的日志对象或者对象数组，每个对象（Object）最多允许300个键值对，且转成JSON字符串最大支持长度1024\*30个字符，超出部分将被截断。 array\<Object\>：数组中的每条Object数据最多300个键值对，转成JSON字符串最大支持长度1024\*30个字节，超出部分将被截断。不填入内容时，将立即上报缓存中的日志。 用户的日志字段名称不允许包含双下划线（__） |
  | labels  | Object                    | 选填   | 空   | 日志标签，最外层键值对50个以内，最外层key最大长度为64个字符，最外层key值只能由字母开头，字母、数字或下划线组成，标签转成JSON字符串最大支持长度1024\*30个字符，超出限制将不上报此条信息。 用户的日志字段名称不允许包含双下划线（__）                                                                                                   |
     
  
 
#### 参数获取方式
- 区域表
  表5区域表 
  | 区域名称   | 区域         |
  |:---|:---|
  | 华北-北京四 | cn-north-4 |
  | 华东-上海一 | cn-east-3  |
  | 华南-广州  | cn-south-1 |
     
  
- 日志组ID：在云日志服务控制台，选择"日志管理"，鼠标悬浮在日志组名称上，可查看日志组名称和日志组ID。
- 日志流ID：单击日志组名称对应的![](https://support.huaweicloud.com/usermanual-lts/zh-cn_image_0000001873667073.png)按钮，鼠标悬浮在日志流名称上，可查看日志流名称和日志流ID。
 
