@hd-lib/hd-sls-logger
v1.2.0-alpha.1
Published
haoduo js端sls日志服务sdk
Downloads
2
Readme
@hd/hd-sls-logger
好多兴趣班内部使用的 sls 日志服务 js 库。
兼容 普通h5, taro 小程序, mpass webview 容器 h5。
埋点文档见: https://haoduo.yuque.com/cpwd/yhdwd/yaogkl
功能
所有端统一写法。 在 mpass webview 内直接调用了 native 方法,使用官方 sdk。 在 普通h5, taro 小程序内实现异常捕获,重试机制。
用法
1.安装依赖包
yarn add @hd/hd-sls-logger
2.import在您的应用程序模块。
h5:
import HdSlsLogger from '@hd/hd-sls-logger'
taro:
import HdSlsLogger from '@hd/hd-sls-logger'
4.配置参数并创建HdSlsLogger对象。(在单独文件里创建,使用时引用实例)
const opts = {
host: '${host}', // 所在区域的host
project: '${project}', // project名称
logstore: '${logstore}', // logstore名称
getUserInfo?, // 获取用户信息函数 返回对象需要有 userId 小程序用,h5不需要
getUserCity?, // 获取城市函数 返回对象需要有 cityName cityId 小程序用,h5不需要
errorFun?, // 错误回调函数,返回error和data 可以用这个回调接 sentry
}
// __logs__层除 data 和 time 外其他数据,大部分是项目参数
const logInfo = {
__project__: "好多兴趣班小程序",
__app_version__: "1.2.3",
uid: "",
channel: "",
client: "",
"app-version": "",
"city-id": "",
"city-name": "",
"device-id": "",
"device-model": "",
traceId: "",
"weex-version": "",
"system-version": "",
}
const logger = new HdSlsLogger(opts, logInfo)
export default logger
5.上传日志。
普通上传:(先缓存再发送)
logger.send(
eventName?: string, // topic
params = {}, // 附参
source: string = 'event_log', // 页面埋点 page_log, 行为埋点 event_log
baseData?: {}, // 基础数据,会加到埋点数据最外层
)
立即上传:(失败再缓存)
logger.sendNow(
eventName?: string, // topic
params = {}, // 附参
source: string = 'event_log', // 页面埋点 page_log, 行为埋点 event_log
baseData?: {}, // 基础数据,会加到埋点数据最外层
)
发送spm日志
logger.sendSpm(
spm?: string, // spm值
params = {},// 附参
source?: string = 'event_log', // 页面埋点 page_log, 行为埋点 event_log
sendNowBoolean?:boolean, // 判断立即上传还是普通上传,默认普通上传,即先缓存再发送
baseData = {} // 基础数据,会加到埋点数据最外层
)
其他方法
修改之前设置的logInfo:
logger.setLogInfo({
__project__: "好多兴趣班小程序",
__app_version__: "1.2.3",
uid: "",
channel: "",
client: "",
"app-version": "",
"city-id": "",
"city-name": "",
"device-id": "",
"device-model": "",
traceId: "",
"weex-version": "",
"system-version": "",
})
更新日志
1.1.0
- 增加静态方法:HdSlsLogger.getTraceId
- 增加静态方法:HdSlsLogger.saveTraceId(uuid: string)
1.1.3
- 修改上传日志的缓存策略,之前是所有日志存一个位置,改成了每条日志都存不一样的位置,减少json解析时间。
- 新增立即发送方法 sendNow
- 新增发送 spm 方法 sendSpm
1.1.4
- 去除 sentry,改成在宿主环境通过errorFun回调来发送sentry错误信息。此做法可以减少包体积,增加扩展性(比如以后用其他的错误收集框架)。