# 实时日志

## 背景

为帮助小程序开发者快捷地排查小程序漏洞、定位问题，我们推出了实时日志功能。从基础库2.7.1开始，开发者可通过提供的接口打印日志，日志汇聚并实时上报到小程序后台。开发者可从小程序管理后台“开发->运维中心->实时日志”进入日志查询页面，查看开发者打印的日志信息。

## 如何使用

1、调用相关接口。打日志的接口是`wx.getRealtimeLogManager`，为了兼容旧的版本，建议使用如下代码封装一下，例如封装在`log.js`文件里面：

```js
var log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null

module.exports = {
  debug() {
    if (!log) return
    log.debug.apply(log, arguments)
  },
  info() {
    if (!log) return
    log.info.apply(log, arguments)
  },
  warn() {
    if (!log) return
    log.warn.apply(log, arguments)
  },
  error() {
    if (!log) return
    log.error.apply(log, arguments)
  },
  setFilterMsg(msg) { // 从基础库2.7.3开始支持
    if (!log || !log.setFilterMsg) return
    if (typeof msg !== 'string') return
    log.setFilterMsg(msg)
  },
  addFilterMsg(msg) { // 从基础库2.8.1开始支持
    if (!log || !log.addFilterMsg) return
    if (typeof msg !== 'string') return
    log.addFilterMsg(msg)
  }
}
```

2、在页面的具体位置打印日志：

```js
var log = require('./log.js') // 引用上面的log.js文件
log.info('hello test hahaha') // 日志会和当前打开的页面关联，建议在页面的onHide、onShow等生命周期里面打
log.warn('warn')
log.error('error')
log.setFilterMsg('filterkeyword')
log.addFilterMsg('addfilterkeyword')
```

完整的例子可以参考代码片段：https://developers.weixin.qq.com/s/aFYw1BmC7eak

## 如何查看日志

登录小程序管理后台，从“开发->运维中心->实时日志”进入日志查询页面。开发者可通过设置时间、微信号/OpenID、页面链接、FilterMsg内容（基础库2.7.3及以上支持setFilterMsg）等筛选条件查询指定用户的日志信息。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/dbb5e8fc-ce11-4928-a6fc-c2e1c56107eb.png)

## 注意事项

由于后台资源限制，“实时日志”使用规则如下：

1. 为了定位问题方便，日志是按页面划分的，某一个页面，在onShow到onHide（切换到其他页面、右上角圆点退到后台）之间打的日志，会聚合成**一条日志**上报，并且在小程序管理后台上可以根据页面路径搜索出**该条日志**。
2. 每个小程序账号每天限制100万条日志，日志会保留三天，建议遇到问题及时定位。
3. **一条日志**的上限是5KB，最多包含200次打印日志函数调用（info、warn、error调用都算），所以要谨慎打日志，避免在循环里面调用打日志接口，避免直接重写console.log的方式打日志。
4. 意见反馈里面的日志，可根据OpenID搜索日志。
5. setFilterMsg可以设置过滤的Msg。这个接口的目的是提供某个场景的过滤能力，例如`setFilterMsg('scene1')`，则在MP上可输入scene1查询得到该条日志。比如上线过程中，某个监控有问题，可以根据FilterMsg过滤这个场景下的具体的用户日志。FilterMsg仅支持大小写字母。如果需要添加多个关键字，建议使用addFilterMsg替代setFilterMsg。

![](https://res8.wxqcloud.qq.com.cn/wxdoc/4316476e-183c-411a-afb7-1d7480a0297a.png)
