微信小程序打夯之旅(十)- 实时日志

概述

谢天谢地,小程序终于出这个功能了,小程序上线后,如果用户反馈问题真的很难排查问题,我们能够收集的资料极其有限,小程序推出实时日志真的可以有效帮助定位问题。

环境说明

  • 基础库:2.7.1
  • 日志查询地址:开发 -> 运维中心 -> 实时日志,体验版也可以上传,但是必须在真机上

如何对接

调用起来非常方便,获取小程序日志管理器 wx.getRealtimeLogManager,然后通过 infowarnerror 等方法打印不同类型的日志。

const log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null;
if (!log) return;
log.info('hello, info');
log.warn('hello, warn');
log.error('hello, error');

也可以通过设置过滤关键字来帮助日志筛选。

log.setFilterMsg('filterkeyword');
log.addFilterMsg('addfilterkeyword');

封装到 page 通用能力中

每次都写一遍比较麻烦,还容易出错,所以可以进行一些封装。下面为 app.js

  onLaunch() {
    this.enhancePage();
  },
  
  // 增强Page能力,小程序不支持prototype的形式拓展能力
  enhancePage() {
    const oPage = Page;
    Page = config => oPage(Object.assign(config, {
      $logger: this.getLogger(),
    }));
  },
  
  // 获取日志打印器
  getLogger() {
    const log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null;
    return {
      info: () => log && log.info.apply(log, arguments),
      warn: () => log && log.warn.apply(log, arguments),
      error: () => log && log.error.apply(log, arguments),
      setFilterMsg: msg => log && log.setFilterMsg && log.setFilterMsg(msg),
      addFilterMsg: msg => log && log.addFilterMsg && log.addFilterMsg(msg),
    }
  }

在页面中进行使用

Page({
  onLoad() {
    this.$logger.info('just test');
  }
})

注意事项

  • 为了定位问题方便,日志是按页面划分的,某一个页面,在onShow到onHide(切换到其它页面、右上角圆点退到后台)之间打的日志,会聚合成一条日志上报,并且在小程序管理后台上可以根据页面路径搜索出该条日志。
  • 每个小程序账号每天限制100万条日志,日志会保留三天,建议遇到问题及时定位。
  • 一条日志的上限是5KB,最多包含200次打印日志函数调用(info、warn、error调用都算),所以要谨慎打日志,避免在循环里面调用打日志接口,避免直接重写console.log的方式打日志。
  • 意见反馈里面的日志,可根据OpenID搜索日志。
  • setFilterMsg可以设置过滤的Msg。这个接口的目的是提供某个场景的过滤能力,例如setFilterMsg('scene1'),则在MP上可输入scene1查询得到该条日志。比如上线过程中,某个监控有问题,可以根据FilterMsg过滤这个场景下的具体的用户日志。FilterMsg仅支持大小写字母。如果需要添加多个关键字,建议使用addFilterMsg替代setFilterMsg。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文:https://zhuanlan.zhihu.com/p/27363484?hmsr=toutiao.io&...
    No_21312阅读 1,234评论 0 12
  • idea 添加注释/** 然后回车 选中代码块 Ctrl+Shift+/ 重点推荐阅读:https://www....
    Helen_Cat阅读 20,435评论 0 37
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 5,188评论 1 13
  • 比特科技: 存储、数据库、大数据技术 » 最佳日志实践 http://www.bitstech.net/2014...
    葡萄喃喃呓语阅读 1,673评论 0 13
  • 【面包送干货,面包最顶饿!】 ------------------------ 精选干货 【投行/券商】八卦趣谈—...
    每天一点典阅读 395评论 0 0

友情链接更多精彩内容