文章实时采集(小程序插件-gt实时日志使用规则(组图) )
优采云 发布时间: 2021-09-28 13:11文章实时采集(小程序插件-gt实时日志使用规则(组图)
)
实时日志背景
为帮助小程序开发者快速排查小程序漏洞和定位问题,我们推出了实时日志功能。开发者可以通过提供的接口打印日志,采集日志并实时上报给小程序后端。开发者可以从小程序管理后台“开发->开发管理->运维中心->实时日志”进入小程序日志查询页面,或从“小程序插件->实时日志”进入插件日志查询页面Log”,然后查看开发者打印的日志信息。
小程序/小游戏使用方法
从基础库2.7.1开始,小终端可以使用实时日志,从基础库2.14.4开始支持小游戏终端.
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.addFilterMsg('addfilterkeyword')
完整的例子可以参考代码片段:
插件端
从基础库2.16.0开始,插件也支持实时日志。为了让日志更加结构化以进行更复杂的分析,插件端采用了全新设计的格式。
1、 调用相关接口 wx.getRealtimeLogManager 获取实时日志管理器的实例:
const logManager = wx.getRealtimeLogManager()
2、在需要日志的逻辑中,获取日志实例:
// 标签名可以是任意字符串,一个标签名对应一组日志;同样的标签名允许被重复使用,具有相同标签名的日志在后台会被汇总到一个标签下
// 标签可为日志进行分类,因此建议开发者按逻辑来进行标签划分
const logger = logManager.tag('plugin-onUserTapSth')
3、在合适的位置打印日志:
logger.info('key1', 'value1') // 每条日志为一个 key-value 对,key 必须是字符串,value 可以是字符串/数值/对象/数组等可序列化类型
logger.error('key2', {str: 'value2'})
logger.warn('key3', 'value3')
logger.setFilterMsg('filterkeyword') // 和小程序/小游戏端接口一致
logger.setFilterMsg('addfilterkeyword') // 和小程序/小游戏端接口一致
如何查看日志
登录小程序管理后台,从“开发->开发管理->运维中心->实时日志”进入日志查询页面。开发者可以通过设置时间、微信ID/OpenID、页面链接、FilterMsg内容(基础库2.7.3及以上支持setFilterMsg)等过滤条件查询指定用户的日志信息。如果是插件上报的实时日志,可以通过“小程序插件->实时日志”进入日志查询页面进行查询。
预防措施
由于后台资源限制,“实时日志”的使用规则如下:
为了方便定位问题,将日志按页面划分,某个页面,在一定时间内(最短为5秒,最长为页面显示和隐藏的时间间隔),会聚合成一个小程序管理后台可以根据页面路径查找该日志。每个小程序账号每天限制1000万条日志,日志保存7天。建议及时定位问题。一个日志的上限为5KB,最多收录200个打印日志函数调用(info、warn、error调用都算在内),所以要注意log,避免循环调用log接口,避免直接覆盖console .log 点击日志。反馈中的日志可以根据OpenID查找。setFilterMsg 和 addFilterMsg 可以设置类似于日志标签的过滤字段。如果需要添加多个关键字,建议使用addFilterMsg。比如addFilterMsg('scene1'), addFilterMsg('scene2'), addFilterMsg('scene3'),设置后可以随机组合三个关键字在小程序管理后台搜索,如:“scene1 scene2 scene3”, "scene1 scene2" ", "scene1 scene3" or "scene2" 等(用空格隔开,所以addFilterMsg不能收录空格)日志可以通过以上几种检索方式进行检索,检索条件越多越准确会的,目前为了方便日志分析,插件实时日志只支持key-value格式。实时日志目前仅支持手机端测试。工具端的接口可以调用,但是不会上报后台。