UNPKG

error-advisor

Version:

NPM module that aim to facilitate the error handling by providing http errors classes and also let you customize business errors as well with handy and clean way.

93 lines 3.12 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); const winston_1 = require("winston"); // export const logger = createLogger({ // level: "info", // format: format.combine( // format.timestamp(), // format.json(), // ), // transports: [ // new transports.Console({ level: "info" }), // new transports.File({ // level: 'error', // filename: './logs/error.log' // }) // ], // }) const customLevels = { levels: { trace: 5, debug: 4, info: 3, warn: 2, error: 1, fatal: 0, }, colors: { trace: "white", debug: "green", info: "green", warn: "yellow", error: "red", fatal: "red", }, }; const formatter = winston_1.format.combine(winston_1.format.colorize(), winston_1.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston_1.format.splat(), winston_1.format.printf((info) => { const { timestamp, level, message } = info, meta = __rest(info, ["timestamp", "level", "message"]); return `${timestamp} [${level}]: ${message} ${Object.keys(meta).length ? JSON.stringify(meta, null, 2) : ""}`; })); class Log { constructor(environment) { this.now = new Date(); const prodTransport = new winston_1.transports.File({ filename: "logs/error" + this.now + ".log", level: "error", }); const transport = new winston_1.transports.Console({ format: formatter, }); this.logger = winston_1.createLogger({ level: this.isDevEnvironment(environment) ? "trace" : "error", levels: customLevels.levels, transports: [this.isDevEnvironment(environment) ? transport : prodTransport], }); winston_1.addColors(customLevels.colors); } trace(msg, meta) { this.logger.log("trace", msg, meta); } debug(msg, meta) { this.logger.debug(msg, meta); } info(msg, meta) { this.logger.info(msg, meta); } warn(msg, meta) { this.logger.warn(msg, meta); } error(msg, meta) { this.logger.error(msg, meta); } fatal(msg, meta) { this.logger.log("fatal", msg, meta); } isDevEnvironment(environment) { let isDevEnvironment = false; environment === "development" && (isDevEnvironment = true); return isDevEnvironment; } } exports.default = Log; //# sourceMappingURL=logger.js.map