UNPKG

mice-log

Version:

logging component - mice style

57 lines (56 loc) 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleClearLog = exports.handleGetLog = exports.init = exports.getLogger = void 0; const init_levels_1 = require("./imp/init-levels"); const log_1 = require("./imp/log"); const logger_factory_1 = require("./imp/logger-factory"); const parse_category_1 = require("./imp/parse-category"); let basePath = './'; const levels = new Map(); const loggers = new Map(); const getKnown = (qs) => (0, parse_category_1.getCategory)([...loggers.keys(), ...levels.keys()], qs); const getLogger = (category = 'error') => { const result = loggers.get(category); if (typeof result !== 'undefined') { return result; } const created = (0, logger_factory_1.createLogger)(levels, () => basePath, category); loggers.set(category, created); return created; }; exports.getLogger = getLogger; const init = (onConfigure) => { const logInit = (0, init_levels_1.getInitLevels)(); if (typeof onConfigure === 'function') { onConfigure(logInit); } if (logInit.basePath.length > 0) { basePath = logInit.basePath; } logInit.levels.forEach((value, key) => { if ((0, log_1.isSeverity)(value)) { levels.set(key, value); } }); }; exports.init = init; const handleGetLog = async (req, res, next) => { try { res.send(await (0, log_1.readLog)(basePath, getKnown(req.query))); } catch (err) { next(err); } }; exports.handleGetLog = handleGetLog; const handleClearLog = async (req, res, next) => { try { const category = getKnown(req.query); await (0, log_1.clearLog)(basePath, category); res.status(204).end(); } catch (err) { next(err); } }; exports.handleClearLog = handleClearLog;