• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

微信小程序操作日志上

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  微信小程序操作日志记录,如果是用户量不多或者后台人手安排不足情况下,可以考虑使用微信官方的api上报日志。下面说说此方法的具体实现。
  先说下展示结果,查看日志的步骤:微信小程序管理后台mp.weixin.qq.com页面的开发目录=>开发管理=>运维中心=>实时日志。
  
代码实现:
 

// 看项目指什么为唯一值界限,例如用户userId或者用户手机号等等,我这边是以用户手机号区分,居于uniapp所以使用了vuex获取用户信息,原生开发的可以使用getApp().globalData.XX || wx.getStorageSync("XX")
import $store from "@/store/index.js";
// 获取小程序当前环境,用于关键字过滤操作
import { env } from "./base.js"
class LogManager {
    constructor() {
        this._log = null;                // 日志管理器实际功能变量
        this.infoStorage = [];            // info级别日志管理
        this.warnStorage = [];            // warn级别日志管理
        this.errorStorage = [];            // error级别日志管理
    }
    // 初始化
    init() {
        // #ifdef MP-WEIXIN
            this._log = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null;
        // #endif
    }
    // 实际上报操作
    saveLogFunc(args, type) {
        if (!this._log || !this._log[type]) return;
        let _mobile = $store.getters["baseInfo/userInfo"].mobile;
        // 先试用`${type}Storage`临时缓存,如果用户正常登录,获取到手机号码的话,上报日志,否则等待下一次触发
        this[`${type}Storage`].push(args);
        if(!!_mobile) {
            this.setFilterMsg(`${env}${_mobile}`)
            try{
                this._log[type].apply(this._log, this[`${type}Storage`])
            } catch( err) {
                return
            }
            this[`${type}Storage`] = [];
        }
    }
    // 操作过滤关键字
    handleFilterMsg(fn, type) {
        if (!this._log || !this._log[type]) return
        if (typeof msg !== \'string\') return 
        try{
            fn()
        } catch( err) {
            return
        }
    }
    // 写 info 日志
    info() {
        this.saveLogFunc(arguments, "info")
    };
    // 写 warn 日志
    warn() {
        this.saveLogFunc(arguments, "warn")
    }
    // 写 error 日志
    error() {
        this.saveLogFunc(arguments, "error")
    }
    // 设置过滤关键字,从基础库2.7.3开始支持
    setFilterMsg(msg) {
        this.handleFilterMsg(function() {
            this._log.setFilterMsg(msg)  
        }.apply(this), "setFilterMsg")
    }
    // 多个过滤关键字,从基础库2.8.1开始支持
    addFilterMsg(msg) { 
        this.handleFilterMsg(function() {
            this._log.addFilterMsg(msg)  
        }.apply(this), "addFilterMsg")
    }
}

export default LogManager;

一般用户反馈,我们可以获取用户手机号,或者使用微信小程序的客服功能的获取到用户id等等,这些就是我们查找用户日志的有效数据。再加上时间段的过滤,例如我查看开发环境13242808961手机号码用户的日志

在小程序App 实例app.vue/app.js引入,上报你的操作数据吧


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【纯·技术干货】更 App 化的小程序开发发布时间:2022-07-18
下一篇:
微信小程序页面跳转方法总结发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap