UNPKG

logjet

Version:

Structured, async TypeScript logger with console, file, HTTP transports and NestJS support

50 lines 1.61 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = void 0; const dayjs_1 = __importDefault(require("dayjs")); class Logger { constructor(options = {}) { this.levels = ["debug", "info", "warn", "error"]; this.transports = options.transports || []; this.level = options.level || "debug"; } shouldLog(level) { return this.levels.indexOf(level) >= this.levels.indexOf(this.level); } async emit(level, message, context) { if (!this.shouldLog(level)) return; const entry = { timestamp: (0, dayjs_1.default)().toISOString(), level, message, context, }; await Promise.all(this.transports.map(async (transport) => { try { await transport.log(entry); } catch (err) { // optionally handle or queue failed transport logging console.error(`Transport error:`, err); } })); } debug(message, context) { return this.emit("debug", message, context); } info(message, context) { return this.emit("info", message, context); } warn(message, context) { return this.emit("warn", message, context); } error(message, context) { return this.emit("error", message, context); } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map