@gaoding/web-logger
v1.1.2
Published
> TODO: description
Downloads
12
Keywords
Readme
@gaoding/web-logger
Web 平台日志上报 SDK
安装
npm i @gaoding/web-logger
使用
import { webLogger, wxLogger } from '@gaoding/web-logger';
// weblogger 和 wxLogger 接口一致
// 在项目入口初始化
logger.init('testname', { isDebug: true, user: {id: '123456'}, is_login: true });
logger.error('发送一个错误日志');
logger.error(new Error('发送一个错误日志'));
logger.info('发送一个消息日志');
// 修改用户id
logger.setUser({id: '45667'})
// 修改配置项
logger.setOptions({is_login: false})
处理 vue.js 的 onerror 错误
import Vue from 'vue';
import { vuePlugin, logger } from '@gaoding/web-logger';
// 自动上报 vue 错误日志
vuePlugin(logger, Vue);
处理 window 的 onerror 错误
import { windowPlugin, logger } from '@gaoding/web-logger';
// 自动上报 window 错误日志
windowPlugin(logger);
具体接口
// 扩展字段
export interface IAttributes {
module: string;
url?: string;
method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
ua?: string;
errorType?: string;
stacktrace: {
file: string;
args?: string[];
context?: string;
line?: number;
column?: number;
func?: string;
}[];
[k: string]: any;
}
// 初始化选型
export interface IOptions {
isDebug?: boolean;
log_type?: string;
// 用户是否登录,区分游客
is_login?: boolean;
device_id?: string;
dsn: string;
stackTraceLimit?: number;
// 用户信息
user?: IUser;
}
declare class Logger {
init(appName: string, options?: Partial<IOptions>): void;
setUser(user: IUser): void;
setOptions(options: IOptions): void;
info(message: string | Error, attributes?: Partial<IAttributes>): void;
debug(message: string | Error, attributes?: Partial<IAttributes>): void;
error(message: string | Error, attributes?: Partial<IAttributes>): void;
warn(message: string | Error, attributes?: Partial<IAttributes>): void;
}