mice-log
Version:
logging component - mice style
57 lines (56 loc) • 1.87 kB
JavaScript
;
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;