UNPKG

debug-server-next

Version:

Dev server for hippy-core.

46 lines (45 loc) 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = void 0; const tslib_1 = require("tslib"); const path_1 = tslib_1.__importDefault(require("path")); const util_1 = tslib_1.__importDefault(require("util")); const safe_1 = tslib_1.__importStar(require("colors/safe")); const winston_1 = require("winston"); const config_1 = require("@/config"); require("winston-daily-rotate-file"); class Logger { constructor(label = '', color) { this.label = label; this.color = color; this.initLoggerInstance(); } info(...args) { this.log('info', ...args); } warn(...args) { this.log('warn', ...args); } error(...args) { this.log('error', ...args); } log(level, ...args) { const msg = util_1.default.format(...args); this.loggerInstance.log(level, msg); } initLoggerInstance() { const transport = new winston_1.transports.DailyRotateFile({ filename: path_1.default.join(config_1.config.logPath, '%DATE%.log'), datePattern: 'YYYY-MM-DD-HH', zippedArchive: false, maxSize: '20m', maxFiles: '7d', }); const label = this.color ? safe_1.default[this.color](this.label) : safe_1.random(this.label); this.loggerInstance = winston_1.createLogger({ format: winston_1.format.combine(winston_1.format.errors({ stack: true }), winston_1.format.label({ label }), winston_1.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss.SSS' }), winston_1.format.colorize(), winston_1.format.printf(({ level, message, label, timestamp }) => `${timestamp} ${label} ${level} ${message}`)), transports: [transport, new winston_1.transports.Console()], }); } } exports.Logger = Logger;