UNPKG

winstonson

Version:

Simple logging wrapper around Winston - for Node.js

149 lines 4.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const moment_1 = __importDefault(require("moment")); const winston_1 = __importDefault(require("winston")); let _level = "debug"; let _dateFormat = null; const _customLevels = { levels: { error: 0, warn: 1, info: 2, trace: 3, debug: 4 }, colors: { error: "red", warn: "yellow", info: "cyan", trace: "magenta", debug: "white" } }; const _logFormatter = winston_1.default.format.printf((info) => { const date = _dateFormat ? info.timestamp.format(_dateFormat) : info.timestamp.format(); return `${info.level}: ${date} [${info.filename}] ${info.message}`; }); const _transports = { console: new winston_1.default.transports.Console({ format: winston_1.default.format.combine(winston_1.default.format.colorize(), _logFormatter) }), fileGeneral: new winston_1.default.transports.File({ filename: "out.log", format: _logFormatter }), fileError: new winston_1.default.transports.File({ filename: "error.log", level: "error", format: _logFormatter }) }; const _logger = winston_1.default.createLogger({ levels: _customLevels.levels, level: _level, transports: [_transports.fileError, _transports.fileGeneral] }); winston_1.default.addColors(_customLevels.colors); if (process.env.NODE_ENV !== "production") { _logger.add(_transports.console); } if (process.env.NODE_ENV === "test") { _transports.console.silent = true; } class WinstonsonLogger { constructor(filename) { this.filename = filename; } debug(message) { _logger.log({ level: "debug", message, timestamp: moment_1.default(), filename: this.filename }); } trace(message) { _logger.log({ level: "trace", message, timestamp: moment_1.default(), filename: this.filename }); } info(message) { _logger.log({ level: "info", message, timestamp: moment_1.default(), filename: this.filename }); } warn(message) { _logger.log({ level: "warn", message, timestamp: moment_1.default(), filename: this.filename }); } error(message) { if (typeof message === "object" && message instanceof Error) { _logger.log({ level: "error", message: message.message, timestamp: moment_1.default(), filename: this.filename }); } else { _logger.log({ level: "error", message, timestamp: moment_1.default(), filename: this.filename }); } } level(level) { if (level) { _level = level; _logger.level = level; _transports.console.level = level; _transports.fileGeneral.level = level; } else { return _level; } } mute() { _transports.console.silent = true; } unmute() { _transports.console.silent = false; } setDateFormat(format) { _dateFormat = format; } stream(level) { return { write(message, enc) { _logger.log({ level, message: message.replace(/\n/g, ""), timestamp: moment_1.default(), filename: this.filename }); } }; } } function default_1(m) { const pathParts = m.id.split("/"); const filename = pathParts[pathParts.length - 1]; return new WinstonsonLogger(filename); } exports.default = default_1; //# sourceMappingURL=index.js.map