export class BaseLog { name close constructor(name, close?){ this.name = name; this.close = close; } // 输出日志 output = (type = 'info', message, reason?, opts?) => { opts = opts || {}; if(this.close) return; try{ message = typeof message == 'object' ? JSON.stringify(message) : message; if(reason){ reason = typeof reason == 'object' ? JSON.stringify(reason) : reason; } } catch (err){ console.warn('[Log] warn: ',err); } const msg = reason ? '[' + this.name + '] ' + type + ': ' + message + ' -> ' + reason : '[' + this.name + '] ' + type + ': ' + message; console[type == 'info' ? 'log' : type](msg); return msg; } /** * 打印日志 * @param message 打印日志信息 * @param reason 打印日志附加信息 * @param level * 日志等级,为true时为最高等级3,不传值时为最低等级0 * 0-打印不采集发送服务器 * 1-打印采集并发送本地服务器 * 2-打印采集并发送本地+测试服务器 * 3-打印采集并发送本地+测试+生产服务器<最高等级> */ info = (message, reason?, level?:number|boolean) => { level = level || false; this.output('info', message, reason, { level }); } warn = (message, reason?, level?:number|boolean) => { level = level || false; this.output('warn', message, reason, { level }); } error = (message, reason?, level?:number|boolean) => { level = level || false; this.output('error', message, reason, { level }); } }