logsdx
Version:
log streaming with dx on the ðŸ§
74 lines (69 loc) • 1.83 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/utils/logger.ts
var LOG_LEVELS = {
debug: 0,
trace: 0,
info: 1,
success: 1,
warn: 2,
error: 3
};
var Logger = class _Logger {
constructor(config) {
this.config = {
level: config.level,
prefix: _nullishCoalesce(config.prefix, () => ( "")),
timestamp: _nullishCoalesce(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
});
exports.Logger = Logger; exports.logger = logger;
//# sourceMappingURL=chunk-MA4X2JPV.cjs.map