UNPKG

mice-log

Version:

logging component - mice style

27 lines (26 loc) 1.62 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.clearLog = exports.readLog = exports.writeLog = exports.isSeverity = exports.formatFileName = exports.categories = exports.severities = void 0; const promises_1 = __importDefault(require("fs/promises")); const path_1 = __importDefault(require("path")); const LOG_ENCODING = 'utf8'; exports.severities = ['verbose', 'info', 'warning', 'error']; exports.categories = ['error', 'app']; const formatFileName = (basePath, category) => path_1.default.format({ dir: basePath, name: category, ext: '.log' }); exports.formatFileName = formatFileName; const timeStamp = () => new Date(); const formatRecord = (severity, message) => JSON.stringify([timeStamp(), severity, message]); const withNewLine = (value) => `${value}\n`; const isSeverity = (value) => exports.severities.indexOf(value) >= 0; exports.isSeverity = isSeverity; const writeLog = async (basePath, severity, category, message) => promises_1.default.appendFile((0, exports.formatFileName)(basePath, category), withNewLine(formatRecord(severity, message))); exports.writeLog = writeLog; const readLog = async (basePath, category) => promises_1.default.readFile((0, exports.formatFileName)(basePath, category), { encoding: LOG_ENCODING, }); exports.readLog = readLog; const clearLog = (basePath, category) => promises_1.default.truncate((0, exports.formatFileName)(basePath, category)); exports.clearLog = clearLog;