2025-02-23 16:30:22 -06:00

52 lines
1021 B
JavaScript

class Logger {
constructor() {
this.levels = {
INFO: "\x1b[36m", // Cyan
WARNING: "\x1b[33m", // Yellow
ERROR: "\x1b[31m", // Red
CRITICAL: "\x1b[31m\x1b[1m", // Bold Red
DEBUG: "\x1b[32m", // Green
RESET: "\x1b[0m", // Reset color
};
}
_getTimestamp() {
const now = new Date();
return now.toISOString().replace(/T/, " ").replace(/\..+/, "");
}
_log(level, message) {
const timestamp = this._getTimestamp();
const color = this.levels[level] || "";
console.log(
`${color}[${timestamp}] [${level}] ${message}${this.levels.RESET}`
);
}
info(message) {
this._log("INFO", message);
}
warning(message) {
this._log("WARNING", message);
}
error(message) {
this._log("ERROR", message);
}
critical(message) {
this._log("CRITICAL", message);
}
debug(message) {
this._log("DEBUG", message);
}
}
// Usage
// const log = new Logger();
// log.info("This is an info message");
module.exports = Logger;