logsdx
Version:
log streaming with dx on the ðŸ§
74 lines (73 loc) • 1.59 kB
JavaScript
// 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