52 lines
1021 B
JavaScript
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;
|