首先我们需要做的是日志的收集,分不同纬度,不同等级,不同的方式去采集。收集日志信息,我们先计划直接在浏览器控制台输出。
项目的搭建采用类似于babel的monorepo形式组织我们代码,每一个独立的模块就是一个packsge
负责日志的打印,输出核心日志api,可配置不同级别日志的打印,主动收集日志各个维度的信息,日志的格式可以思考,那种方式看起来舒服,有辨识度,比如:
[21:59:40.677] [referrer] [url] [os] [browser] [resolution] [projectId] [moduleId] [INFO] - 这是一条info日志 会产生一个随机数: 80
主要支持手动埋点
参考项目:
拦截某些功能行为,例如AJAX调用logger记录
参考项目:
为了提高手动埋点给代码的维护成本,我们同时采用如下方式:
参考项目: