UNPKG

@ply-ct/ply

Version:

REST API Automated Testing

100 lines 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = exports.isLogger = void 0; const log_1 = require("./log"); const isLogger = (log) => { return log.isPlyLogger === true; }; exports.isLogger = isLogger; class Logger { constructor(options, storage, append = false) { this.storage = storage; this.isPlyLogger = true; this.enabled = true; this.options = { level: log_1.LogLevel.info, prettyIndent: 0, ...(options || {}) }; if (storage && !append) { storage.remove(); } } log(levelOrMessage, messageOrObj, logObj) { let level = log_1.LogLevel.info; let message = '' + messageOrObj; let obj = logObj; if (typeof levelOrMessage === 'string') { message = levelOrMessage; obj = messageOrObj; } else { level = levelOrMessage; } if (level <= this.options.level) { if (level === log_1.LogLevel.error) { if (obj) { if (obj.stack) { console.error(message); console.error(obj.stack); } else { console.error(message + ': ' + JSON.stringify(obj, null, this.options.prettyIndent)); } } else { console.error(message); } } else { if (obj) { if (obj.stack) { console.log(message); console.log(obj); } else { console.log(message + ': ' + JSON.stringify(obj, null, this.options.prettyIndent)); } } else { console.log(message); } } if (this.storage) { this.storage.append('' + message); if (obj) { if (obj.stack) { this.storage.append('\n' + obj.stack); } else { this.storage.append(': ' + JSON.stringify(obj, null, this.options.prettyIndent)); } } this.storage.append('\n'); } } } info(message, obj) { this.log(log_1.LogLevel.info, message, obj); } error(message, obj) { if (!obj && message.message && message.stack) { const err = message; this.log(log_1.LogLevel.error, err.message, err); } else { this.log(log_1.LogLevel.error, message, obj); } } debug(message, obj) { this.log(log_1.LogLevel.debug, message, obj); } get level() { return this.options.level; } toString() { return this.options.level + ': ' + (this.storage ? this.storage : 'console'); } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map