UNPKG

wakaq

Version:

Background task queue for Node backed by Redis, a super minimal Celery

45 lines (44 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupLogging = exports.Level = void 0; const winston_1 = require("winston"); var Level; (function (Level) { Level["INFO"] = "info"; Level["ERROR"] = "error"; Level["WARN"] = "warn"; Level["DEBUG"] = "debug"; })(Level || (exports.Level = Level = {})); const setupLogging = (wakaq, isChild = false, isScheduler = false) => { const level = isScheduler ? wakaq.schedulerLogLevel : wakaq.workerLogLevel; const logger = (0, winston_1.createLogger)({ level: level, format: winston_1.format.combine(winston_1.format.errors({ stack: true }), winston_1.format.printf(({ level, message, stack, payload }) => { if (stack) message = `${message} - ${stack}`; if (isChild) return JSON.stringify({ payload: wakaq.currentTask, level, message }); let prefix = `${new Date().toISOString()} ${level.toUpperCase()}`; if (payload) { if (payload?.name) { prefix = `${prefix} in ${payload.name} args=${JSON.stringify(payload.args ?? [])} retry=${payload.retry ?? 0}`; } } return `${prefix}: ${message}`; })), }); const logFile = isScheduler ? wakaq.schedulerLogFile : wakaq.workerLogFile; if (isChild || !logFile) { logger.add(new winston_1.transports.Console()); } else { logger.add(new winston_1.transports.File({ filename: logFile, level: level, handleExceptions: true, maxsize: 5242880, })); } return logger; }; exports.setupLogging = setupLogging;