1.2.0-alpha.1 • Published 1 year ago

@hd-lib/hd-sls-logger v1.2.0-alpha.1

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

@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错误信息。此做法可以减少包体积,增加扩展性(比如以后用其他的错误收集框架)。