UNPKG

logsdx

Version:

log streaming with dx on the 🧠

74 lines (73 loc) • 1.59 kB
// src/utils/logger.ts var LOG_LEVELS = { debug: 0, trace: 0, info: 1, success: 1, warn: 2, error: 3 }; var Logger = class _Logger { config; constructor(config) { this.config = { level: config.level, prefix: config.prefix ?? "", timestamp: config.timestamp ?? true }; } formatMessage(level, message) { const parts = []; if (this.config.timestamp) { parts.push(`[${(/* @__PURE__ */ new Date()).toISOString()}]`); } parts.push(`[${level.toUpperCase()}]`); if (this.config.prefix) { parts.push(`[${this.config.prefix}]`); } parts.push(message); return parts.join(" "); } shouldLog(level) { return LOG_LEVELS[level] >= LOG_LEVELS[this.config.level]; } debug(message) { if (this.shouldLog("debug")) { console.error(this.formatMessage("debug", message)); } } info(message) { if (this.shouldLog("info")) { console.info(this.formatMessage("info", message)); } } warn(message) { if (this.shouldLog("warn")) { console.error(this.formatMessage("warn", message)); } } error(message, error) { if (this.shouldLog("error")) { console.error(this.formatMessage("error", message)); if (error) { console.error(error); } } } // Create a new logger instance with updated config withConfig(config) { return new _Logger({ ...this.config, ...config }); } }; var logger = new Logger({ level: "info", timestamp: true }); export { Logger, logger }; //# sourceMappingURL=chunk-4MUAUYPX.js.map