UNPKG

@lxdhub/common

Version:

Display, search and copy LXD-images using a web interface.

60 lines 2.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chalk_1 = require("chalk"); const Winston = require("winston"); const { combine, timestamp, label, printf } = Winston.format; const format = (message, color) => // @ts-ignore `${chalk_1.default.cyan(message.timestamp)} [${message.context}] ${chalk_1.default[color](message.level)}: ${message.message}`; /** * The Winston Logger Strategy */ class WinstonLogger { constructor(context, level = 'info') { this.context = context; this.level = level; this.logger = Winston.createLogger({ level, format: Winston.format.json(), }); if (process.env.NODE_ENV !== 'production') { const myFormat = printf((message) => { switch (message.level) { case 'info': return format(message, 'blue'); case 'error': return format(message, 'red'); case 'warn': return format(message, 'yellow'); case 'silly': return format(message, 'gray'); default: return format(message, 'blueBright'); } }); this.logger.add(new Winston.transports.Console({ format: combine(label(), timestamp(), myFormat) })); } } log(message) { this.logger.info(message, { context: this.context }); } info(message) { this.log(message); } silly(message) { this.logger.silly(message, { context: this.context }); } warn(message) { this.logger.warn(message, { context: this.context }); } error(message) { this.logger.error(message, { context: this.context }); } debug(message) { this.logger.debug(message, { context: this.context }); } } exports.WinstonLogger = WinstonLogger; //# sourceMappingURL=winston.logger.js.map