@alicloud/logger-gl
TypeScript icon, indicating that this package has built-in type declarations

1.4.4 • Public • Published

@alicloud/logger-gl

封装黄金令箭,简化黄金令箭的使用。

申请黄金令箭,去这里:http://log.alibaba-inc.com/track/index.htm#/apply/gold

INSTALL

tnpm i @alicloud/logger-gl -S

APIs

log(logKey: string, mode?: EGlMode, params?: TParams, method: TMethod = 'GET')

黄金令箭页面上有个功能叫「生成埋点代码」,会给出以下代码样例,这里的 log 方法是对这些代码样例的简单封装,唯一的差别是 params 只允许传对象而不是字符串(这里会做编码)。

import {
  EGlMode,
  log
} from '@alicloud/logger-gl';

log('/....');
log('/....', EGlMode.CLICK);
log('/....', EGlMode.CLICK, {
  ...
});
log('/....', EGlMode.CLICK, {
  ...
}, 'POST');

createLogger<P>(options: IOptions)

其中 IOptions 定义如下:

interface IOptions {
  /**
   * 业务码
   */
  bizCode: string;
  /**
   * 场景码
   */
  scene: string;
  /**
   * 令箭码
   */
  glKey: string;
  /**
   * 触发方式
   */
  mode?: EGlMode;
  /**
   * HTTP 请求方式
   */
  method?: TMethod;
  /**
   * 默认参数,避免每次都要传,可以是静态数据或产生动态数据的方法
   */
  defaultParams?: TDefaultParams;
}

新建黄金令箭时,需要提供三个配置,层级如下:

业务(bizCode)
  └─ 业务场景(scene)
     └─ 黄金令箭(glKey)

创建一个针对业务场景的黄金令箭方法,调用者只关心传入什么样的参数(如果不需要额外的参数,创建时不传入泛型即可)。

import createLogger from '@alicloud/logger-gl';

interface IParams {
  p1: string;
  p2: number;
}

// 这里返回一个函数,在需要的地方引入并使用即可,不建议创建了之后马上在同一个文件中使用
const log = createLogger<IParams>({
  bizCode, // 必填,业务码
  scene, // 必填,场景码
  glKey, // 必填,令箭码
  mode, // 可选,触发方式,默认 `OTHER`
  defaultParams // 可选,对象或返回对象的方法
});

// 使用这个特定 log 方法的时候可以很明确的知道需要传哪些参数,多传少传或类型不匹配,TS 都会编译失败
log({
  p1: 'p1',
  p2: 2
});

Readme

Keywords

Package Sidebar

Install

npm i @alicloud/logger-gl

Weekly Downloads

2

Version

1.4.4

License

MIT

Unpacked Size

18.3 kB

Total Files

19

Last publish

Collaborators

  • jacksontian
  • fengmk2
  • pagecao
  • aliyunsdkteam
  • console-fe