为帮助小程序开发者快捷地排查小程序漏洞、定位问题,我们推出了实时日志功能。从基础库 1.15.0 开始,开发者可通过提供的接口打印日志,日志汇聚并实时上报到小程序后台。开发者可从小程序管理后台“运维中心->实时日志”进入日志查询页面,查看开发者打印的日志信息。
1、调用相关接口。打日志的接口是qq.getRealtimeLogManager
,为了兼容旧的版本,建议使用如下代码封装一下,例如封装在log.js
文件里面:
var log = qq.getRealtimeLogManager ? qq.getRealtimeLogManager() : null;
module.exports = {
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) {
if (!log || !log.setFilterMsg) return;
if (typeof msg !== "string") return;
log.setFilterMsg(msg);
},
addFilterMsg(msg) {
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");
登录小程序管理后台,从“运维中心->实时日志”进入日志查询页面。开发者可通过设置时间、QQ号/OpenID、页面链接、FilterMsg内容等筛选条件查询指定用户的日志信息。
由于后台资源限制,“实时日志”使用规则如下:
setFilterMsg
可以设置过滤的Msg。这个接口的目的是提供某个场景的过滤能力,例如setFilterMsg('scene1')
,则在MP上可输入scene1查询得到该条日志。比如上线过程中,某个监控有问题,可以根据FilterMsg
过滤这个场景下的具体的用户日志。FilterMsg
仅支持大小写字母。如果需要添加多个关键字,建议使用addFilterMsg
替代setFilterMsg
。