专栏首页极乐技术社区微信小程序“实时日志”帮你快速找到bug

微信小程序“实时日志”帮你快速找到bug

背景:

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

如何使用:

1、调用相关接口。打日志的接口是wx.getRealtimeLogManager,为了兼容旧的版本,建议使用如下代码封装一下,例如封装在log.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、在页面的具体位置打印日志:

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

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

如何查看日志:

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

注意事项:

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

  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。

本文分享自微信公众号 - 极乐技术社区(wxapp-union),作者:微信官方文档

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小程序框架选型必看:Taro vs uni-app选型经历!

    公司新产品要求发布到各家小程序,最近研究对比了社区主流的几家小程序开发框架,独坑不如拉人众坑,分享给各位,欢迎和我一起入坑:)

    极乐君
  • 微信小程序+和风天气完成天气预报

    花半天时间完成简单的小程序应用。适合小程序初学者。

    极乐君
  • Belinda的小程序踩坑记(一)

    微信小程序出来已有段时间,虽还在内测阶段。利用空闲时间,我把蜂贷微信项目部分迁移到小程序上。 目录结构 小程序的主体由三个文件组成,这三个文件要放在项目的根目录...

    极乐君
  • 【精华】洞悉MySQL底层架构:游走在缓冲与磁盘之间

    提起MySQL,其实网上已经有一大把教程了,为什么我还要写这篇文章呢,大概是因为网上很多网站都是比较零散,而且描述不够直观,不能对MySQL相关知识有一个系统的...

    cxuan
  • Fiori launchpad里Enter Group name这个tile是怎么配置出来的

    版权声明:本文为博主汪子熙原创文章,未经博主允许不得转载。

    Jerry Wang
  • 高性能IO模型浅析

    服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non...

    李海彬
  • Python练手小项目(一)——在图片上加上数字

    当一门语言学到了一定程度,我们就需要不断地做项目以加强对其的理解及应用。github上有一个很有意思的练手项目合集:show-me-the-code。今天要写的...

    李志伟
  • 微信小程序富文本编辑器editor初体验-图片上传

    https://developers.weixin.qq.com/miniprogram/dev/component/editor.html

    hotqin888
  • 高性能IO模型浅析

    服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non...

    李海彬
  • 如何收集项目日志统一发送到kafka中?

    我是攻城师

扫码关注云+社区

领取腾讯云代金券