UNPKG

multi-automator

Version:
78 lines (77 loc) 2.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.get = exports.set = void 0; /** * @desc: log operate * @author: john_chen * @date: 2023.03.14 */ const path_1 = require("path"); const winston_1 = require("winston"); const moment_1 = __importDefault(require("moment")); const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file")); let logger = {}; /** * 设置日志句柄 * * @param {string} dir 日志存储目录 * @param {string} label 日志标识 * @param {string} level 日志等级 * @param {string} maxFiles 日志最大存储时间 * @param {string} maxSize 日志文件最大尺寸 * @return {Object} */ function set(dir, label, level = 'info', maxFiles = '3d', maxSize = '100m') { if (!dir) { throw new Error('参数缺失:dir'); } if (!label) { throw new Error('label'); } const myFormat = winston_1.format.combine(winston_1.format.label({ label }), winston_1.format.printf(({ level, message }) => { return `[${process.pid}]` + `[${(0, moment_1.default)().format('HH:mm:ss')}]` + `[${level}] ${message}`; })); const transports = new winston_daily_rotate_file_1.default({ level, maxSize, maxFiles, filename: (0, path_1.join)(dir, '%DATE%.log'), }); logger[label] = (0, winston_1.createLogger)({ level, format: myFormat, transports, }); return logger[label]; } exports.set = set; /** * 获取日志句柄 * * @param {string} label 日志标识 * @return {Object} */ function get(label) { if (label) { if (logger[label]) { return logger[label]; } else { throw new Error('请先初始化日志句柄'); } } else { let loggerLabels = Object.keys(logger); if (0 === loggerLabels.length) { throw new Error('请先初始化日志句柄'); } else { label = loggerLabels[0]; return logger[label]; } } } exports.get = get;