UNPKG

@fabric-es/operator

Version:
53 lines 2.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLogger = void 0; const moment_timezone_1 = __importDefault(require("moment-timezone")); const winston_1 = require("winston"); const { combine, label, printf } = winston_1.format; const logFormat = printf(({ level, message, label, timestamp }) => { return `${timestamp} [${level}]: ${message} (${label})`; }); const appendTimestamp = winston_1.format((info, opts) => { if (opts.tz) info.timestamp = moment_timezone_1.default().tz(opts.tz).format(); return info; }); const CONSOLE = 1; const FILE = 2; const CLOUD = 4; const loggers = {}; const getLogger = ({ name, level, target, timezone }) => { if (loggers[name]) { return loggers[name]; } else { const logLevel = level || process.env.LOG_LEVEL || 'info'; const logTarget = (target || process.env.LOG_TARGET || 'console|file|cloud').split('|').reduce((accu, curr) => { switch (curr) { case 'console': return accu | CONSOLE; case 'file': return accu | FILE; case 'cloud': return accu | CLOUD; default: return accu; } }, 0); const logTimezone = timezone || process.env.TZ || 'Asia/Hong_Kong'; const transportArray = []; if (logTarget & FILE) { transportArray.push(new winston_1.transports.File({ filename: `./logs/app.log` })); } if (logTarget & CONSOLE) transportArray.push(new winston_1.transports.Console()); loggers[name] = winston_1.createLogger({ level: logLevel, exitOnError: false, format: combine(label({ label: name }), appendTimestamp({ tz: logTimezone }), logFormat), transports: transportArray, }); return loggers[name]; } }; exports.getLogger = getLogger; //# sourceMappingURL=getLogger.js.map