@lx-frontend/wx-minapp-monitor
Version:
a sdk for min-app monitor
153 lines • 5.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RealtimeLogManager = void 0;
var tslib_1 = require("tslib");
var instance;
var RealtimeLogManager = /** @class */ (function () {
function RealtimeLogManager(options) {
if (options === void 0) { options = {}; }
// private static instance: RealtimeLogManager;
this.logger = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null;
this.isEnable = options.enable === undefined ? true : options.enable;
}
RealtimeLogManager.prototype.validLogger = function () {
if (!this.isEnable)
return false;
if (!this.logger) {
console.warn('RealtimeLogManager is not supported, please check the version');
return false;
}
return true;
};
/**
* 数据脱敏
* @param data 需要脱敏的数据
*/
// eslint-disable-next-line class-methods-use-this
RealtimeLogManager.prototype.filterData = function (data) {
var jsonStr = JSON.stringify(data);
var jsonFilter = jsonStr.replace(/(\d{3})\d+(\d{4})/gm, '$1****$2').replace(/(\d{6})\d+(\d{4})/gm, '$1******$2');
return jsonFilter;
};
RealtimeLogManager.prototype.RouterCenter = function (type) {
var _a;
var _this = this;
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
if (!this.validLogger())
return;
// 获取当前系统信息
var sysInfo = wx.getSystemInfoSync() || {};
// 获取当前路由信息
var routerInfo = getCurrentPages() ? getCurrentPages().map(function (_) { return ({ route: _.route, options: _.options }); }) : {};
var params = args.map(function (_) { return _this.filterData(_); });
(_a = this.logger[type]).call.apply(_a, tslib_1.__spreadArray([this.logger], params, false));
};
/**
* 获取 RealtimeLogManager 实例,使用单例模式
* @param options RealtimeLogManager 配置项
* @returns RealtimeLogManager 实例
*/
RealtimeLogManager.getInstance = function (options) {
if (options === void 0) { options = {}; }
if (!instance) {
instance = new RealtimeLogManager(options);
}
return instance;
};
Object.defineProperty(RealtimeLogManager.prototype, "enabled", {
/**
* 获取该实例的日志记录功能是否开启
*/
get: function () {
return this.isEnable === undefined ? true : this.isEnable;
},
/**
* 开启或关闭该实例的日志记录功能
*/
set: function (value) {
this.isEnable = value;
},
enumerable: false,
configurable: true
});
/**
*
* @param args
*/
RealtimeLogManager.prototype.info = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
this.RouterCenter.apply(this, tslib_1.__spreadArray(['info'], args, false));
};
/**
*
* @param args
*/
RealtimeLogManager.prototype.warn = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
this.RouterCenter.apply(this, tslib_1.__spreadArray(['warn'], args, false));
};
/**
*
* @param args
*/
RealtimeLogManager.prototype.error = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
this.RouterCenter.apply(this, tslib_1.__spreadArray(['error'], args, false));
};
/**
*
* @param msg
* @returns
*/
RealtimeLogManager.prototype.addFilterMsg = function (msg) {
if (!this.validLogger())
return;
this.logger.addFilterMsg(msg);
};
/**
*
* @param msg
* @returns
*/
RealtimeLogManager.prototype.setFilterMsg = function (msg) {
if (!this.validLogger())
return;
this.logger.setFilterMsg(msg);
};
/**
* 获取当前系统信息
*/
RealtimeLogManager.prototype.reportSysInfo = function () {
if (!this.validLogger())
return;
var sysInfo = wx.getSystemInfoSync() || {};
this.logger.info('------系统信息------', sysInfo);
};
/**
* 获取当前页面栈信息
* @param latest 获取最近的latest条页面栈
*/
RealtimeLogManager.prototype.reportRouterInfo = function (latest) {
if (latest === void 0) { latest = 0; }
if (!this.validLogger())
return;
var num = !+latest ? 0 : +latest;
var routerInfo = getCurrentPages() ? getCurrentPages().slice(-num).map(function (_) { return ({ route: _.route, options: _.options }); }) : {};
this.logger.info('------路由信息------', routerInfo);
};
return RealtimeLogManager;
}());
exports.RealtimeLogManager = RealtimeLogManager;
//# sourceMappingURL=index.js.map