运维中心 /realtimelogSearch

# operation.realtimelogSearch

> 本接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。

> 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0`

实时日志查询

调用方式:

- [HTTPS 调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/operation/operation.realtimelogSearch.html#method-http)
- [云调用](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/operation/operation.realtimelogSearch.html#method-cloud)



## HTTPS 调用

### 请求地址

```text
GET https://api.weixin.qq.com/wxaapi/userlog/userlog_search?access_token=ACCESS_TOKEN
```

### 请求参数

| 属性                                  | 类型   | 默认值 | 必填 | 说明                                                         |
| :------------------------------------ | :----- | :----- | :--- | :----------------------------------------------------------- |
| access_token / cloudbase_access_token | string |        | 是   | [接口调用凭证](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html) |
| date                                  | string |        | 是   | YYYYMMDD格式的日期,仅支持最近7天                            |
| begintime                             | number |        | 是   | 开始时间,必须是 date 指定日期的时间                         |
| endtime                               | number |        | 是   | 结束时间,必须是 date 指定日期的时间                         |
| start                                 | number | 0      | 否   | 开始返回的数据下标,用作分页,默认为0                        |
| limit                                 | number | 20     | 否   | 返回的数据条数,用作分页,默认为20                           |
| traceId                               | string |        | 否   | 小程序启动的唯一ID,按 TraceId 查询会展示该次小程序启动过程的所有页面的日志。 |
| url                                   | string |        | 否   | 小程序页面路径,例如pages/index/index                        |
| id                                    | string |        | 否   | 用户微信号或者OpenId                                         |
| filterMsg                             | string |        | 否   | 开发者通过setFileterMsg/addFilterMsg指定的 filterMsg 字段    |
| level                                 | number |        | 否   | 日志等级,返回大于等于 level 等级的日志,level的定义为2(Info)、4(Warn)、8(Error),如果指定为4,则返回大于等于4的日志,即返回 Warn 和Error日志。 |

### 返回值

### Object

| 属性    | 类型           | 说明                           |
| :------ | :------------- | :----------------------------- |
| data    | Object         | 返回的日志数据和日志条数总量   |
| list    | Array.<Object> | 返回的日志数据列表             |
| errcode | number         | 微信侧错误码,下单失败时返回   |
| errmsg  | string         | 微信侧错误信息,下单失败时返回 |

**list 的结构**

| 属性           | 类型           | 说明                                                         |
| :------------- | :------------- | :----------------------------------------------------------- |
| level          | number         | 日志等级,是 msg 数组里面的所有 level 字段的或操作得到的结果。例如 msg 数组里有两条日志,Info(值为2)和Warn(值为4),则 level 值为6 |
| libraryVersion | string         | 基础库版本                                                   |
| clientVersion  | string         | 客户端版本                                                   |
| id             | string         | 微信用户OpenID                                               |
| timestamp      | number         | 打日志的 Unix 时间戳                                         |
| platform       | number         | 1 安卓 2 IOS                                                 |
| url            | string         | 小程序页面链接                                               |
| msg            | Array.<Object> | 日志内容数组,log.info等的内容存在这里                       |
| traceid        | string         | 小程序启动的唯一ID,按 TraceId 查询会展示该次小程序启动过程的所有页面的日志。 |
| filterMsg      | string         | 微信用户OpenID                                               |

**list.msg 的结构**

| 属性  | 类型           | 说明                                         |
| :---- | :------------- | :------------------------------------------- |
| time  | number         | log.info调用的时间                           |
| msg   | Array.<string> | log.info调用的内容,每个参数分别是数组的一项 |
| level | number         | log.info调用的日志等级                       |

**errcode 的合法值**

| 值     | 说明                                                         | 最低版本 |
| :----- | :----------------------------------------------------------- | :------- |
| -1     | 系统失败                                                     |          |
| 200002 | 参数错误,date、begintime、endtime必填。date只能是最近三天的日期,endtime必须大于begintime |          |
| 200010 | 操作过于频繁,目前限制每分钟50次                             |          |
| 200007 | 无权限                                                       |          |

### 返回示例

查询成功 { "errcode": 0, "errmsg": "", "data": { "list": [{ "level": 6, "platform": 1, "libraryVersion": "2.8.3", "clientVersion": "7.0.7", "id": "oXu034-Kl5Et2U0vsexKDsFaon0Q", "timestamp": 1570852796, "msg": [{ "time": 1570852795, "msg": ["hello world"], "level": 2 }, { "time": 1570852795, "msg": ["get msg list mig 10006"], "level": 4 }], "url": "pages/chat/chat", "traceid": "oXu03410akoNqfsrMMswk6Zwwl1U_1570852656", "filterMsg": "NetworkExceed08 ReportTimeTotal" }], "total": 1000 } }



## 云调用

> [云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 `wx-server-sdk` 使用。

### 接口方法

```js
openapi.operation.realtimelogSearch
```

> 需在 `config.json` 中配置 `operation.realtimelogSearch` API 的权限,[详情](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html#usage-3)

### 请求参数

| 属性      | 类型   | 默认值 | 必填 | 说明                                                         |
| :-------- | :----- | :----- | :--- | :----------------------------------------------------------- |
| date      | string |        | 是   | YYYYMMDD格式的日期,仅支持最近7天                            |
| begintime | number |        | 是   | 开始时间,必须是 date 指定日期的时间                         |
| endtime   | number |        | 是   | 结束时间,必须是 date 指定日期的时间                         |
| start     | number | 0      | 否   | 开始返回的数据下标,用作分页,默认为0                        |
| limit     | number | 20     | 否   | 返回的数据条数,用作分页,默认为20                           |
| traceId   | string |        | 否   | 小程序启动的唯一ID,按 TraceId 查询会展示该次小程序启动过程的所有页面的日志。 |
| url       | string |        | 否   | 小程序页面路径,例如pages/index/index                        |
| id        | string |        | 否   | 用户微信号或者OpenId                                         |
| filterMsg | string |        | 否   | 开发者通过setFileterMsg/addFilterMsg指定的 filterMsg 字段    |
| level     | number |        | 否   | 日志等级,返回大于等于 level 等级的日志,level的定义为2(Info)、4(Warn)、8(Error),如果指定为4,则返回大于等于4的日志,即返回 Warn 和Error日志。 |

### 返回值

### Object

| 属性    | 类型           | 说明                           |
| :------ | :------------- | :----------------------------- |
| data    | Object         | 返回的日志数据和日志条数总量   |
| list    | Array.<Object> | 返回的日志数据列表             |
| errCode | number         | 微信侧错误码,下单失败时返回   |
| errMsg  | string         | 微信侧错误信息,下单失败时返回 |

**list 的结构**

| 属性           | 类型           | 说明                                                         |
| :------------- | :------------- | :----------------------------------------------------------- |
| level          | number         | 日志等级,是 msg 数组里面的所有 level 字段的或操作得到的结果。例如 msg 数组里有两条日志,Info(值为2)和Warn(值为4),则 level 值为6 |
| libraryVersion | string         | 基础库版本                                                   |
| clientVersion  | string         | 客户端版本                                                   |
| id             | string         | 微信用户OpenID                                               |
| timestamp      | number         | 打日志的 Unix 时间戳                                         |
| platform       | number         | 1 安卓 2 IOS                                                 |
| url            | string         | 小程序页面链接                                               |
| msg            | Array.<Object> | 日志内容数组,log.info等的内容存在这里                       |
| traceid        | string         | 小程序启动的唯一ID,按 TraceId 查询会展示该次小程序启动过程的所有页面的日志。 |
| filterMsg      | string         | 微信用户OpenID                                               |

**list.msg 的结构**

| 属性  | 类型           | 说明                                         |
| :---- | :------------- | :------------------------------------------- |
| time  | number         | log.info调用的时间                           |
| msg   | Array.<string> | log.info调用的内容,每个参数分别是数组的一项 |
| level | number         | log.info调用的日志等级                       |

**errCode 的合法值**

| 值   | 说明 | 最低版本 |
| :--- | :--- | :------- |
| 0    | 成功 |          |

### 异常

### Object

抛出的异常

| 属性    | 类型   | 说明                           |
| :------ | :----- | :----------------------------- |
| errCode | number | 微信侧错误码,下单失败时返回   |
| errMsg  | string | 微信侧错误信息,下单失败时返回 |

**errCode 的合法值**

| 值     | 说明                                                         | 最低版本 |
| :----- | :----------------------------------------------------------- | :------- |
| -1     | 系统失败                                                     |          |
| 200002 | 参数错误,date、begintime、endtime必填。date只能是最近三天的日期,endtime必须大于begintime |          |
| 200010 | 操作过于频繁,目前限制每分钟50次                             |          |
| 200007 | 无权限                                                       |          |

### 请求示例

```js
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.operation.realtimelogSearch({
        "date": '',
        "begintime": '',
        "endtime": '',
        "start": '',
        "limit": '',
        "traceId": '',
        "url": '',
        "id": '',
        "filterMsg": '',
        "level": ''
      })
    return result
  } catch (err) {
    return err
  }
}
```