miniprogram-logger
Version:
It is used to log and gather statistics of users' behavior.
92 lines (91 loc) • 3.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var console_1 = require("./console/console");
exports.ConsoleManager = console_1.ConsoleManager;
var index_1 = require("./count/index");
exports.CounterReportMonitor = index_1.ReportMonitor;
var index_2 = require("./log/index");
exports.LogManager = index_2.LogManager;
exports.LogReporter = index_2.ReportAnalytics;
var index_3 = require("./telemetry/index");
exports.TelemetryReporter = index_3.ReportAnalytics;
var index_4 = require("./time/index");
exports.TimeReporter = index_4.ReportAnalytics;
var guid_1 = require("./common/guid");
exports.guid = guid_1.guid;
var reporter_1 = require("./common/reporter");
exports.logTransformFunction = reporter_1.logTransformFunction;
var index_5 = require("./log/index");
exports.AllLevels = index_5.AllLevels;
exports.isLogLevel = index_5.isLogLevel;
var index_6 = require("./telemetry/index");
exports.TelemetryTransformFunction = index_6.TelemetryTransformFunction;
/**
* 原始console
*/
exports.originConsole = console;
/**
* 计数器
*/
exports.defaultCounter = new index_1.ReportMonitor();
/**
* 本地日志Logger
*/
exports.defaultLogManager = wx.getLogManager && new index_2.LogManager();
/**
* 实时日志
*/
exports.defaultRealtimeLogger = wx.getRealtimeLogManager && new index_2.RelatimeLogger();
/**
* 日志上报
*/
exports.defaultLogReporter = new index_2.ReportAnalytics("log", ["level", "action", "content", "correlation_id",]);
/**
* 计时器上报
*/
exports.defaultTimer = new index_4.ReportAnalytics("time", ["action", "duration", "param", "request_id", "result", "type"]);
/**
* Telemetry 统计日志
*/
exports.defaultTelemetry = new index_3.ReportAnalytics("telemetry");
exports.logger = new console_1.ConsoleManager(exports.originConsole);
exports.logger.Counters.push(exports.defaultCounter);
if (exports.defaultLogManager) {
exports.logger.Loggers.push(exports.defaultLogManager);
}
if (exports.defaultRealtimeLogger) {
exports.logger.Loggers.push(exports.defaultRealtimeLogger);
}
exports.logger.Loggers.push(exports.defaultLogReporter);
exports.logger.Telemetry.push(exports.defaultTelemetry);
exports.logger.Timers.push(exports.defaultTimer);
var isInjected = false;
/**
* 监听全局错误
* wx.onPageNotFound
* wx.onError
* wx.onMemoryWarning
* wx.onAudioInterruptionEnd
* wx.onAudioInterruptionBegin
*/
function inject() {
if (!isInjected) {
isInjected = true;
if (wx.onPageNotFound) {
wx.onPageNotFound(function (res) { return exports.logger.error("wx.onPageNotFound", res); });
}
if (wx.onError) {
wx.onError(function (err) { return exports.logger.error("wx.onError", err); });
}
//基础库 2.6.2 开始支持
if (wx.onAudioInterruptionBegin) {
wx.onAudioInterruptionEnd(function (err) { return exports.logger.warn("wx.onAudioInterruptionEnd", err); });
wx.onAudioInterruptionBegin(function (err) { return exports.logger.warn("wx.onAudioInterruptionBegin", err); });
}
// 内存不足告警事件的回调函数
if (wx.onMemoryWarning) {
wx.onMemoryWarning(function (err) { return exports.logger.warn("wx.onMemoryWarning", err); });
}
}
}
exports.inject = inject;