UNPKG

miniprogram-logger

Version:

It is used to log and gather statistics of users' behavior.

92 lines (91 loc) 3.31 kB
"use strict"; 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;