bitcore-wallet-client
Version:
Client for bitcore-wallet-service
116 lines • 3.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const DEFAULT_LOG_LEVEL = 'silent';
const levels = {
silent: -1,
debug: 0,
info: 1,
log: 2,
warn: 3,
error: 4,
fatal: 5
};
class Logger {
constructor(name) {
this.level = DEFAULT_LOG_LEVEL;
this.name = name || 'log';
for (const [levelName, level] of Object.entries(levels)) {
if (levelName === 'silent') {
continue;
}
this[levelName] = function (...args) {
if (this.level === 'silent')
return;
if (level >= levels[this.level]) {
let caller;
if (Error.stackTraceLimit && this.level == 'debug') {
const old = Error.stackTraceLimit;
Error.stackTraceLimit = 2;
let stack;
try {
console.trace();
}
catch (e) {
stack = e.stack;
}
if (stack) {
const lines = stack.split('\n');
caller = lines[2];
caller = ':' + caller.substr(6);
}
Error.stackTraceLimit = old;
}
let str = '[' + levelName + (caller || '') + '] ' + args[0];
const extraArgs = args.slice(1);
if (console[levelName]) {
extraArgs.unshift(str);
console[levelName].apply(console, extraArgs);
}
else {
if (extraArgs.length) {
str += JSON.stringify(extraArgs);
}
console.log(str);
}
}
};
}
}
static getLevels() {
return levels;
}
getLevels() {
return Logger.getLevels();
}
setLevel(level) {
this.level = level;
return this;
}
_baseLog(levelName, ...args) {
if (this.level === 'silent')
return;
const level = levels[levelName];
if (level >= levels[this.level]) {
let caller;
if (Error.stackTraceLimit && this.level == 'debug') {
const old = Error.stackTraceLimit;
Error.stackTraceLimit = 2;
let stack;
try {
console.trace();
}
catch (e) {
stack = e.stack;
}
if (stack) {
const lines = stack.split('\n');
caller = lines[2];
caller = ':' + caller.substr(6);
}
Error.stackTraceLimit = old;
}
let str = '[' + levelName + (caller || '') + '] ' + args[0];
const extraArgs = args.slice(1);
if (console[levelName]) {
extraArgs.unshift(str);
console[levelName].apply(console, extraArgs);
}
else {
if (extraArgs.length) {
str += JSON.stringify(extraArgs);
}
console.log(str);
}
}
return this;
}
debug(...args) { return this._baseLog('debug', ...args); }
info(...args) { return this._baseLog('info', ...args); }
log(...args) { return this._baseLog('log', ...args); }
warn(...args) { return this._baseLog('warn', ...args); }
error(...args) { return this._baseLog('error', ...args); }
fatal(...args) { return this._baseLog('fatal', ...args); }
}
;
exports.default = new Logger('copay');
//# sourceMappingURL=log.js.map