@ply-ct/ply
Version:
REST API Automated Testing
100 lines • 3.15 kB
JavaScript
;
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