UNPKG

xud

Version:
193 lines 8.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LevelPriority = exports.Level = exports.Context = void 0; const winston_1 = __importDefault(require("winston")); const safe_1 = __importDefault(require("colors/safe")); const utils_1 = require("./utils/utils"); var Level; (function (Level) { Level["Alert"] = "alert"; Level["Error"] = "error"; Level["Warn"] = "warn"; Level["Info"] = "info"; Level["Verbose"] = "verbose"; Level["Debug"] = "debug"; Level["Trace"] = "trace"; })(Level || (Level = {})); exports.Level = Level; const LevelPriorities = { alert: 0, error: 1, warn: 2, info: 3, verbose: 4, debug: 5, trace: 6, }; var LevelPriority; (function (LevelPriority) { LevelPriority[LevelPriority["alert"] = 0] = "alert"; LevelPriority[LevelPriority["error"] = 1] = "error"; LevelPriority[LevelPriority["warn"] = 2] = "warn"; LevelPriority[LevelPriority["info"] = 3] = "info"; LevelPriority[LevelPriority["verbose"] = 4] = "verbose"; LevelPriority[LevelPriority["debug"] = 5] = "debug"; LevelPriority[LevelPriority["trace"] = 6] = "trace"; })(LevelPriority || (LevelPriority = {})); exports.LevelPriority = LevelPriority; var Context; (function (Context) { Context["Global"] = "GLOBAL"; Context["DB"] = "DB"; Context["RPC"] = "RPC"; Context["P2P"] = "P2P"; Context["OrderBook"] = "ORDERBOOK"; Context["Lnd"] = "LND"; Context["Connext"] = "CONNEXT"; Context["Swaps"] = "SWAPS"; Context["Http"] = "HTTP"; Context["Backup"] = "BACKUP"; Context["Service"] = "SERVICE"; })(Context = exports.Context || (exports.Context = {})); let Logger = /** @class */ (() => { class Logger { constructor({ level = Level.Trace, filename, context = Context.Global, subcontext, instanceId = 0, disabled, dateFormat, }) { this.createSubLogger = (subcontext) => { return new Logger({ subcontext, instanceId: this.instanceId, level: this.level, filename: this.filename, context: this.context, disabled: this.logger === undefined, dateFormat: this.dateFormat, }); }; this.setLogLevel = (level) => { var _a; (_a = this.logger) === null || _a === void 0 ? void 0 : _a.transports.forEach((transport) => { transport.level = level; }); }; this.getLogFormat = (colorize, dateFormat) => { const { format } = winston_1.default; const context = this.subcontext ? `${this.context}-${this.subcontext}` : this.context; if (this.instanceId > 0) { return format.printf(info => `${utils_1.getTsString(dateFormat)} [${context}][${this.instanceId}] ` + `${this.getLevel(info.level, colorize)}: ${info.message}`); } else { return format.printf(info => `${utils_1.getTsString(dateFormat)} [${context}] ${this.getLevel(info.level, colorize)}: ${info.message}`); } }; this.getLevel = (level, colorize) => { if (colorize) { switch (level) { case 'alert': return safe_1.default.bgRed(level); case 'error': return safe_1.default.red(level); case 'warn': return safe_1.default.yellow(level); case 'info': return safe_1.default.green(level); case 'verbose': return safe_1.default.cyan(level); case 'debug': return safe_1.default.blue(level); case 'trace': return safe_1.default.magenta(level); } } return level; }; this.log = (level, msg) => { if (this.logger) { this.logger.log(level, msg); } }; this.alert = (msg) => { this.log(Level.Alert, msg); }; this.error = (msg, err) => { let errMsg; if (msg instanceof Error) { // treat msg as an error object errMsg = msg.stack ? msg.stack : `${msg.name} - ${msg.message}`; } else { errMsg = msg; if (err) { errMsg += ': '; if (err instanceof Error) { errMsg += err.stack ? err.stack : `${err.name} - ${err.message}`; } else if (err.code && err.message) { errMsg += `${err.code} - ${err.message}`; } else { errMsg += JSON.stringify(err); } } } this.log(Level.Error, errMsg); }; this.warn = (msg) => { this.log(Level.Warn, msg); }; this.info = (msg) => { this.log(Level.Info, msg); }; this.verbose = (msg) => { this.log(Level.Verbose, msg); }; this.debug = (msg) => { this.log(Level.Debug, msg); }; this.trace = (msg) => { this.log(Level.Trace, msg); }; this.level = level; this.context = context; this.subcontext = subcontext; this.instanceId = instanceId; this.dateFormat = dateFormat; if (disabled) { return; } const transports = [ new winston_1.default.transports.Console({ level: this.level, format: this.getLogFormat(true, dateFormat), }), ]; if (filename) { this.filename = filename; transports.push(new winston_1.default.transports.File({ filename, level: this.level, format: this.getLogFormat(false, dateFormat), })); } this.logger = winston_1.default.createLogger({ transports, levels: LevelPriorities, }); } } Logger.DISABLED_LOGGER = new Logger({ disabled: true }); Logger.createLoggers = (level, filename = '', instanceId = 0, dateFormat) => { const object = { instanceId, level, filename, dateFormat }; return { global: new Logger(Object.assign(Object.assign({}, object), { context: Context.Global })), db: new Logger(Object.assign(Object.assign({}, object), { context: Context.DB })), rpc: new Logger(Object.assign(Object.assign({}, object), { context: Context.RPC })), p2p: new Logger(Object.assign(Object.assign({}, object), { context: Context.P2P })), orderbook: new Logger(Object.assign(Object.assign({}, object), { context: Context.OrderBook })), lnd: new Logger(Object.assign(Object.assign({}, object), { context: Context.Lnd })), connext: new Logger(Object.assign(Object.assign({}, object), { context: Context.Connext })), swaps: new Logger(Object.assign(Object.assign({}, object), { context: Context.Swaps })), http: new Logger(Object.assign(Object.assign({}, object), { context: Context.Http })), service: new Logger(Object.assign(Object.assign({}, object), { context: Context.Service })), }; }; return Logger; })(); exports.default = Logger; //# sourceMappingURL=Logger.js.map